11. 사용자 테이블 이용한 인증/인가 처리
스프링 시큐리티/책 내용 정리2023. 5. 21. 00:45
책의 11. 사용자 테이블 이용한 인증/인가 처리
SecurityConfig.java
10. JDBC 이용한 인증/인가 처리 와 같음
AuthenticationConfig.java
package com.mysite.config;
import javax.sql.DataSource;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.security.crypto.password.PasswordEncoder;
@Configuration
public class AuthenticationConfig {
@Autowired
DataSource dataSource;
@Autowired
public void configGlobal(AuthenticationManagerBuilder auth) throws Exception {
String query1 = "SELECT user_id, user_pw, enabled FROM member WHERE user_id=?";
String query2 = "SELECT b.user_id, a.auth FROM member_auth a, member b WHERE a.user_no=b.user_no AND b.user_id=?";
auth.jdbcAuthentication()
// 데이터 소스를 지정한다.
.dataSource(dataSource)
// 작성한 쿼리를 지정한다.
.usersByUsernameQuery(query1)
.authoritiesByUsernameQuery(query2)
// BCryptPasswordEncoder 비밀번호 암호화 처리기를 지정한다.
.passwordEncoder(passwordEncoder());
}
// 스프링 시큐리티에서 제공되는 BCryptPasswordEncoder 클래스를 빈으로 등록한다.
@Bean
public PasswordEncoder passwordEncoder() {
return new BCryptPasswordEncoder();
}
}
반응형
'스프링 시큐리티 > 책 내용 정리' 카테고리의 다른 글
13. 스프링 시큐리티 표현식 (0) | 2023.05.21 |
---|---|
12. UserDetailsService 재정의 (0) | 2023.05.21 |
10. JDBC 이용한 인증/인가 처리 (2) | 2023.05.20 |
9. 로그아웃 처리 (0) | 2023.05.20 |
8. 로그인 성공 처리 (0) | 2023.05.19 |
댓글()