Forráskód Böngészése

Security Stateless JWT

dagarcos 2 éve
szülő
commit
7bd3978405

+ 6 - 2
src/main/java/es/uv/garcosda/config/WebSecurityConfig.java

@@ -16,6 +16,7 @@ import org.springframework.security.web.SecurityFilterChain;
 
 import es.uv.garcosda.security.CustomAuthenticationFilter;
 import es.uv.garcosda.security.CustomUserDetailsService;
+import es.uv.garcosda.services.JwtService;
 
 @Configuration
 @EnableWebSecurity
@@ -24,8 +25,11 @@ public class WebSecurityConfig{
 	@Autowired
     private CustomUserDetailsService userDetailsService;
 	
+	@Autowired
+    private JwtService jwtService;
+	
 	@Bean
-    public PasswordEncoder passwordEncoder() {
+    public static PasswordEncoder passwordEncoder() {
         return new BCryptPasswordEncoder();
     }
 	
@@ -46,7 +50,7 @@ public class WebSecurityConfig{
 			.and()
 			.authorizeHttpRequests().anyRequest().permitAll()
 			.and()
-			.addFilter(new CustomAuthenticationFilter(authenticationManager()));
+			.addFilter(new CustomAuthenticationFilter(authenticationManager(), jwtService));
 		
 		return http.build();
 	}

+ 3 - 4
src/main/java/es/uv/garcosda/domain/User.java

@@ -30,10 +30,9 @@ public class User {
 	private String password;
 	
 	@ManyToMany(cascade=CascadeType.MERGE)
-	@JoinTable(
-	      name="user_role",
-	      joinColumns={@JoinColumn(name="USER_ID", referencedColumnName="ID")},
-	      inverseJoinColumns={@JoinColumn(name="ROLE_ID", referencedColumnName="ID")})
+	@JoinTable(name="user_role",
+	           joinColumns={@JoinColumn(name="USER_ID", referencedColumnName="ID")},
+	           inverseJoinColumns={@JoinColumn(name="ROLE_ID", referencedColumnName="ID")})
 	private List<Role> roles;
 	
 	public Integer getId() {

+ 3 - 5
src/main/java/es/uv/garcosda/security/CustomAuthenticationFilter.java

@@ -3,7 +3,6 @@ package es.uv.garcosda.security;
 import java.io.IOException;
 import java.util.stream.Collectors;
 
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.authentication.AuthenticationManager;
 import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
 import org.springframework.security.core.Authentication;
@@ -20,15 +19,14 @@ import jakarta.servlet.http.HttpServletResponse;
 
 public class CustomAuthenticationFilter extends UsernamePasswordAuthenticationFilter{
 
-	@Autowired
 	private AuthenticationManager authenticationManager;
 	
-	@Autowired
 	private JwtService jwtService;
 	
-	public CustomAuthenticationFilter(AuthenticationManager authenticationManager) { 
+	public CustomAuthenticationFilter(AuthenticationManager authenticationManager, JwtService jwtService) { 	
 		this.authenticationManager = authenticationManager;
-	}
+		this.jwtService = jwtService;
+	}	
 	
 	@Override
 	public Authentication attemptAuthentication(HttpServletRequest request, HttpServletResponse response) throws AuthenticationException {

+ 4 - 4
src/main/java/es/uv/garcosda/security/CustomUserDetailsService.java

@@ -8,14 +8,15 @@ import org.springframework.security.core.authority.AuthorityUtils;
 import org.springframework.security.core.userdetails.UserDetails;
 import org.springframework.security.core.userdetails.UserDetailsService;
 import org.springframework.security.core.userdetails.UsernameNotFoundException;
-import org.springframework.security.crypto.password.PasswordEncoder;
-import org.springframework.stereotype.Component;
+import org.springframework.stereotype.Service;
 
 import es.uv.garcosda.domain.User;
 import es.uv.garcosda.repositories.UserRepository;
+import jakarta.transaction.Transactional;
 
 
-@Component
+@Service
+@Transactional
 public class CustomUserDetailsService implements UserDetailsService {
 
 	@Autowired 
@@ -34,7 +35,6 @@ public class CustomUserDetailsService implements UserDetailsService {
                                  .stream()
                                  .map((role) -> role.getName()).toArray(String[]::new);
         
-        
         System.out.println(userRoles);
         Collection<GrantedAuthority> authorities = AuthorityUtils.createAuthorityList(userRoles);
         return authorities;