Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
Alba María Álvarez
/
AppRecetas
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Settings
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
b00730b7
authored
Jun 19, 2025
by
Alba María Álvarez
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
feat(security): creado SecurityConfig para controlar autorización según roles y autenticación
parent
87efc5f6
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
25 additions
and
9 deletions
src/main/java/com/example/apprecetas/user/infrastructure/config/SecurityConfig.java → src/main/java/com/example/apprecetas/security/config/SecurityConfig.java
src/main/java/com/example/apprecetas/
user/infrastructure
/config/SecurityConfig.java
→
src/main/java/com/example/apprecetas/
security
/config/SecurityConfig.java
View file @
b00730b7
package
com
.
example
.
apprecetas
.
user
.
infrastructure
.
config
;
package
com
.
example
.
apprecetas
.
security
.
config
;
import
com.example.apprecetas.security.jwt.JwtAuthFilter
;
import
lombok.RequiredArgsConstructor
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.http.HttpMethod
;
import
org.springframework.security.authentication.AuthenticationManager
;
import
org.springframework.security.config.annotation.authentication.configuration.AuthenticationConfiguration
;
import
org.springframework.security.config.annotation.web.builders.HttpSecurity
;
import
org.springframework.security.config.annotation.web.configuration.EnableWebSecurity
;
import
org.springframework.security.config.annotation.web.configurers.AbstractHttpConfigurer
;
import
org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder
;
import
org.springframework.security.crypto.password.PasswordEncoder
;
import
org.springframework.security.config.http.SessionCreationPolicy
;
import
org.springframework.security.web.SecurityFilterChain
;
import
org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter
;
@EnableWebSecurity
@Configuration
@RequiredArgsConstructor
public
class
SecurityConfig
{
@Bean
public
PasswordEncoder
passwordEncoder
()
{
return
new
BCryptPasswordEncoder
();
}
private
final
JwtAuthFilter
jwtAuthFilter
;
private
final
CustomAuthenticationEntryPoint
authenticationEntryPoint
;
@Bean
public
SecurityFilterChain
filterChain
(
HttpSecurity
http
)
throws
Exception
{
return
http
.
csrf
(
AbstractHttpConfigurer:
:
disable
)
.
headers
(
AbstractHttpConfigurer:
:
disable
)
// necesario para h2-console
.
sessionManagement
(
AbstractHttpConfigurer:
:
disable
)
.
httpBasic
(
AbstractHttpConfigurer:
:
disable
)
.
authorizeHttpRequests
(
request
->
request
.
anyRequest
().
permitAll
()
// permite TODO sin autenticación
.
requestMatchers
(
"/auth/**"
).
permitAll
()
.
requestMatchers
(
HttpMethod
.
GET
,
"/user"
).
hasRole
(
"ADMIN"
)
.
anyRequest
().
authenticated
()
)
.
sessionManagement
(
session
->
session
.
sessionCreationPolicy
(
SessionCreationPolicy
.
STATELESS
))
.
addFilterBefore
(
jwtAuthFilter
,
UsernamePasswordAuthenticationFilter
.
class
)
.
exceptionHandling
(
ex
->
ex
.
authenticationEntryPoint
(
authenticationEntryPoint
))
.
build
();
}
@Bean
public
AuthenticationManager
authenticationManager
(
AuthenticationConfiguration
authConfig
)
throws
Exception
{
return
authConfig
.
getAuthenticationManager
();
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment