스프링 비밀번호 바꾸기 - 삽질향연

jinvicky·2023년 2월 5일
0

2023 Spring Project TIL

목록 보기
8/32

저번에

Bcrypt 어쩌고 encoder를 빈으로 인식을 못하는 것 같았다. @Autowired 했음에도 불구하고.
그래서 아래와 같은 어이없는 코드를 짜야 했다. 더 어이없는건 기존 인코딩 예제에서는 전혀 문제가 없었다는 것이다.

 @Autowired
    BCryptPasswordEncoder passwordEncoder;

    @Bean
    BCryptPasswordEncoder passwordEncoder() {

        return new BCryptPasswordEncoder();
    }```
(MemberServiceImpl의 일부이다.)

아래 사이트를 참고했다. 
https://velog.io/@jinheesung/org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder%EC%9C%A0%ED%98%95%EC%9D%98-%ED%95%9C%EC%A0%95-%EB%B9%88%EC%9D%B4-%EC%97%86%EC%8A%B5%EB%8B%88%EB%8B%A4.

그리고 저번 인코딩 예제에서 설정 설명을 안 적어놨더니 그새 금붕어처럼 까먹었다. 
시큐리티 단순 설정 한번 짚고 가보겠다. 
1. pom.xml 설정 
```js
<dependency>
			<groupId>org.springframework.security</groupId>
			<artifactId>spring-security-web</artifactId>
			<version>${org.springframework-version}</version>
		</dependency>
  1. security-context.xml 파일 생성
    webapp/WEB-INF/spring/appServlet 안에 새로 만들어서 복붙한다.
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="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">

    <bean id="bcryptPasswordEncoder" class="org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder" />

</beans>
  1. web.xml
	<context-param>
		<param-name>contextConfigLocation</param-name>
		<param-value>/WEB-INF/spring/root-context.xml
			/WEB-INF/spring/appServlet/security-context.xml
			//security-context.xml의 경로를 추가한다.
		</param-value>
	</context-param>
  1. Autowired로 필요한 곳에 주입해서 사용한다.

일단 비밀번호 찾기 기능은 다 만들었다. 마지막으로 임시 비밀번호로 로그인을 해보는 테스트가 남았다.
근데 디비에서 비밀번호 varchar() 제한 길이를 너무 줄였나보다.
인코딩한 비밀번호가 너무 길다고 sql이 빼액댄다. (개새기)
일단 Bcrypt passwordEncoder가 설정상 예외발생 가능성이 너무 높아서 한번 더 설정 체크했다.

profile
Front-End와 Back-End 경험, 지식을 공유합니다.

0개의 댓글

관련 채용 정보