1. pom.xml에 스프링 시큐리티 추가
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-web</artifactId>
<version>4.2.1.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-core</artifactId>
<version>4.2.1.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-config</artifactId>
<version>4.2.1.RELEASE</version>
</dependency>
* 스프링 버전이랑 맞춰주기 (소수점까지 말고 제일 앞 숫자만)
2. spring-security.xml 파일 생성
<?xml version="1.0" encoding="UTF-8"?>
<beans:beans xmlns="http://www.springframework.org/schema/security"
xmlns:beans="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/security
http://www.springframework.org/schema/security/spring-security.xsd">
<beans:bean id="bcryptPasswordEncoder" class="org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder" />
</beans:beans>
(네임스페이스에서 bcrypt 체크)
3. web.xml에 spring-security.xml 추가
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/spring/root-context.xml
/WEB-INF/spring/spring-security.xml
</param-value>
</context-param>
4. 암호화 하려는 controller나 service에서
@Autowired
BCryptPasswordEncoder passwordEncoder;
"추가!"
boolean 변수 = this.passwordEncoder.matches( 사용자가 입력한 값, 디비에 담긴 값);
변수가 true 일 때,
로그인 성공 시키면 된닷!
* 이 방식으로 사용할 때, 로그인을 체크하는 쿼리에서는 id 값만 where 절로 찾아서 count(*) 계산! (1개가 나와야겠죠?)
matches()에 담는 디비에 담긴 값을 가져올 때 select 패스워드 from 테이블명 where id만
이 방법은 나중에 이메일로 회원가입 인증을 할 때, 토큰을 URI에 담아서 보내거나 할 때 활용할 수 있다. 이때는 이메일값만 인코드(암호화)해서 보내면 된다!
@를 포함한 인코드는 character에 담기지 않으니 주의 => @ 이 .(마침표)로 인코드 된다.
'Language > Java, Android' 카테고리의 다른 글
[스프링] 한글깨짐 web.xml 필터 (0) | 2018.02.20 |
---|---|
[TOMCAT] 서버 리부트시 자동 실행 (0) | 2018.02.02 |
Scanner 메소드 (대표적인 입력값받기) (0) | 2018.01.03 |
함수 (0) | 2018.01.03 |
배열 (0) | 2018.01.02 |