[블로그] spring security 로그인 이동 경로 및 설정

로그인
jpa 삭제
js 삭제
form 형태로 변경
apicontroller 삭제

<%@ taglib prefix="sec" uri="http://www.springframework.org/security/tags" %>

https://www.baeldung.com/spring-security-taglibs

<sec:authorize access="isAuthenticated()">
<sec:authentication property="principal" var = "principal"/>
</sec:authorize>

이걸 넣어 두고
<c:when test = "${empty principal }">
이거 변경

@Override
protected void configure(HttpSecurity http) throws Exception {
http // xss 자바스크립트 공격
.csrf().disable() // 토큰 비활성화 테스트시 사용해야함 // 공격을 막기 위한 것이라 잠깐 막아둠
.authorizeRequests() // 요청이 들어오묜
.antMatchers("/","/auth/","/js/","/css/","/image/") // 여기는 열어둔다
.permitAll() // 이 주소는 허가하고
.anyRequest() // 나머지 주소는 피터링을 해워야한다
.authenticated()
.and()
.formLogin()
.loginPage("/auth/loginForm") // 실패한 페이지를 위임한 페이지
.loginProcessingUrl("/auth/loginProc")// url 로그인 요청이 form 요청으로 들어오면
.defaultSuccessUrl("/"); //로그인 성공시
//.failureUrl("/fail"); // 로그인 실패시
}

config - auth - PrincipalDetail

1.번

.loginProcessingUrl("/auth/loginProc")// url 로그인 요청이 form 요청으로 들어오면 

2번 service 세션 저장 필수! UserDetail 타입만 가능하다. 만들어줘야한다

  @Override
	public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
		User principal = userRepository.findByUsername(username)
				.orElseThrow(()->{
					return new UsernameNotFoundException("해당 사용자를 찾을수 없다");
				});
				
		return new PrincipalDetail(principal); // -> 이때 시큐리티의 세션에 유저가 저장이 된다! UserDetail 타입만 가능하다.
      
	}

3번 이 서비스를 넣어주고 페스워드 확인까지

 @Override
	protected void configure(AuthenticationManagerBuilder auth) throws Exception {
		auth.userDetailsService(null).passwordEncoder(encodePWD());

좋은 웹페이지 즐겨찾기