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에 순서에 맞게 매칭 시켜준다.




+ Recent posts