ConfigurerAdapter 클래스에 다음과 같은 설정을 해주면 DB에서 인증을 할 수 있다.
@Autowired private PasswordEncoder passwordEncoder; @Autowired
DataSource dataSource; @Override public void configure(AuthenticationManagerBuilder auth) throws Exception { String selectUserQuery = "select id, password, enabled from user where id = ?"; String selectRolesQuery = "select id, roles from user_roles where id = ?"; auth.jdbcAuthentication().dataSource(dataSource).usersByUsernameQuery(selectUserQuery)
.authoritiesByUsernameQuery(selectRolesQuery);
}
시큐리티 쿼리 실행은 JDBCTemplate을 통해서 이뤄진다.
?에는 username 파라메터가 들어간다.
userByUsernameQuery는 select username, password, enabled 순이다.
authoritiesByUsernameQuery는 select username, authorities 순이다.
default setting에 순서에 맞게 매칭 시켜준다.
'스프링(Spring)' 카테고리의 다른 글
spring boot mysql datasource 설정 (0) | 2018.03.22 |
---|---|
AspectJ @annotaion 표현식 (0) | 2018.01.28 |
spring-security#1 시작하기 (0) | 2018.01.16 |
Invalid character found in method name. HTTP method names must be tokens (0) | 2018.01.15 |
Spring + Mysql + MyBatis (0) | 2017.10.29 |