[SPRING] Spring 보안 및 Java 구성을 사용하는 사용자 정의 인증 공급자
SPRINGSpring 보안 및 Java 구성을 사용하는 사용자 정의 인증 공급자
Java Configurations와 함께 Spring Security를 사용하여 사용자 정의 인증 공급자를 정의하려면 어떻게합니까? 내 자신의 데이터베이스에서 로그인 확인 자격 증명을 수행하고 싶습니다.
해결법
-
==============================
1.다음은 필요한 것입니다 (CustomAuthenticationProvider는 Spring에서 관리해야하는 구현입니다)
다음은 필요한 것입니다 (CustomAuthenticationProvider는 Spring에서 관리해야하는 구현입니다)
@Configuration @EnableWebMvcSecurity public class WebSecurityConfig extends WebSecurityConfigurerAdapter { @Autowired private CustomAuthenticationProvider customAuthenticationProvider; @Override protected void configure(HttpSecurity http) throws Exception { /** * Do your stuff here */ } @Override protected void configure(AuthenticationManagerBuilder auth) throws Exception { auth.authenticationProvider(customAuthenticationProvider); } }
-
==============================
2.baeldung.com에 표시된 것처럼 인증 공급자를 다음과 같이 정의하십시오.
baeldung.com에 표시된 것처럼 인증 공급자를 다음과 같이 정의하십시오.
@Component public class CustomAuthenticationProvider implements AuthenticationProvider { @Override public Authentication authenticate(Authentication authentication) throws AuthenticationException { String name = authentication.getName(); String password = authentication.getCredentials().toString(); if (shouldAuthenticateAgainstThirdPartySystem(username, password)) { // use the credentials // and authenticate against the third-party system return new UsernamePasswordAuthenticationToken( name, password, new ArrayList<>()); } else { return null; } } @Override public boolean supports(Class<?> authentication) { return authentication.equals( UsernamePasswordAuthenticationToken.class); } }
다음 코드는 해당 Java config입니다.
@Configuration @EnableWebSecurity @ComponentScan("org.project.security") public class SecurityConfig extends WebSecurityConfigurerAdapter { @Autowired private CustomAuthenticationProvider authProvider; @Override protected void configure( AuthenticationManagerBuilder auth) throws Exception { auth.authenticationProvider(authProvider); } @Override protected void configure(HttpSecurity http) throws Exception { http.authorizeRequests().anyRequest().authenticated() .and() .httpBasic(); } }
from https://stackoverflow.com/questions/22606751/custom-authentication-provider-with-spring-security-and-java-config by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] 런타임 생성자 인자를 가진 스프링 빈 (0) | 2019.02.03 |
---|---|
[SPRING] Spring / Hibernate / JUnit - Thread에 바인드 된 Hibernate Session 없음 (0) | 2019.02.02 |
[SPRING] Spring : 클라이언트가 보낸 요청이 구문 상 올바르지 않습니다 (). (0) | 2019.02.02 |
[SPRING] 스프링 및 인터페이스 (0) | 2019.02.02 |
[SPRING] Spring 배치의 다중 항목 작성기 (0) | 2019.02.02 |