나는 spring-boot와 spring-security를 사용하여 프로젝트를 빌드하고, 사용자 정의 로그인 페이지를 사용하여 404 번 잘못되었습니다. 로그인 페이지와 프로젝트를 분리하고 로그인 페이지에서 Ajax URL을 사용하여 보낸 사용자 정보를 인증하고 싶습니다. , 그러나 항상 잘못된 403, 스프링 부트 보안 구성에 대한 구성 정보를 변경했지만 특정 효과는 없습니다. 다음 코드 :
@Override
public void configure(HttpSecurity http) throws Exception{
http.authorizeRequests()
.anyRequest().authenticated()
.antMatchers("/index.html").permitAll()
.and()
.formLogin().usernameParameter("username")
.passwordParameter("password")
.loginProcessingUrl("/login")
.loginPage("/login")
.failureUrl("/login?error")
.permitAll()
.and()
.logout().permitAll();
}
post url : localhost : 8888 / login
params : username, password
응답 보내기 : 403
에러 메시지 :
이 응용 프로그램에는 / error에 대한 명시 적 매핑이 없으므로이를 대체로보고 있습니다.
예기치 않은 오류가 발생했습니다 (유형 = 금지, 상태 = 403).
예상되는 csrf 토큰을 찾을 수 없습니다. 세션이 만료 되었습니까?
Spring Security의 csrf 토큰을 포함하도록 post를 구성해야합니다. POST 요청에서 헤더 매개 변수 "X-CSRF-TOKEN"을 설정해야합니다. POST 요청의 예 :
$.ajax({
type: "POST",
beforeSend: function (request)
{
request.setRequestHeader("X-CSRF-TOKEN", "${_csrf.token}");
},
///...
});
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다