프리젠 테이션 계층에 Wicket Auth Project와 함께 Wicket을 사용하고 있으므로 스프링 보안과 통합했습니다. 이것은 나를 위해 인증을 위해 개찰구에 의해 호출되는 방법입니다 : 나의 봄 보안 XML 구성 (내부)스프링 보안의 프로그래밍 적 사용
@Override
public boolean authenticate(String username, String password) {
try {
Authentication request = new UsernamePasswordAuthenticationToken(
username, password);
Authentication result = authenticationManager.authenticate(request);
SecurityContextHolder.getContext().setAuthentication(result);
} catch (AuthenticationException e) {
return false;
}
return true;
}
내용은 다음과 같습니다
가<http path-type="regex">
<form-login login-page="/signin"/>
<logout logout-url="/logout" />
</http>
<global-method-security secured-annotations="enabled" />
<authentication-manager alias="authenticationManager"/>
<authentication-provider user-service-ref="userService">
<password-encoder ref="bcryptpasswordencoder" />
</authentication-provider>
참조 문서의 섹션 2.3.6. Session Fixation Attack Protection는 말한다 :
세션 고정 공격은 그것이 을 만들 수있는 악의적 인 공격자 수있는 잠재적 위험하다 세션에 액세스 한 다음 은 다른 사용자가 같은 세션으로 로그인하도록 설득합니다 (예 : 매개 변수로 세션 식별자 을 포함하는 링크를 전송하여). 봄 보안은 자동으로 사용자 로그.이 보호를 필요로하지 당신이 경우, 또는 다른 요구 사항과 충돌, 당신이 세션 -를 사용하여 동작을 제어 할 수 있습니다 때 새 세션을 만들어이 으로부터 보호 고정 보호 에 속성, 세 옵션이 있습니다
- migrateSession은 - 기존 세션이 새 세션 속성을 새로운 세션과 복사본을 생성합니다. 이것이 기본값입니다.
- none - 아무것도하지 마십시오. 원래 세션이 유지됩니다.
- newSession - 기존 세션 데이터를 복사하지 않고 새 "깨끗한"세션을 만듭니다.
인증 작품,하지만 난 봄 보안에 비교적 새로운 해요 나는 내가 너무 대답을해야 할 몇 가지 질문이 있습니다이
- 은 일반적으로 로그인에, 나는 인증을 POST 것을 정보를
j_spring_security_check
으로 설정하고 Spring Security가 실제 인증 코드를 수행하게하십시오. 세션 고정 공격으로부터 보호 받고 싶습니다. 프로그램 로그인을 수행 할 때 얻을 수 있습니까? 그리고 그렇지 않다면 그것을 얻기 위해 무엇을해야합니까? - 프로그래밍 방식으로 로그 아웃을 수행하려면 어떻게해야합니까?
- 프로그래밍 방식의 로그인과 로그 아웃을 사용하므로 Spring에서 해당 URL을 차단하지 못하게하려면 어떻게해야합니까?
업데이트 : 세션 고정 공격 보호를 위해 내가 서명 startNewSessionIfRequired(HttpServletRequest request, boolean migrateAttributes, SessionRegistry sessionRegistry)
으로 SessionUtils 클래스의 메소드를 호출해야 할 것으로 보인다.
전달해야하는 SessionRegistry 인스턴스를 얻으려면 어떻게해야합니까? 별칭 ID를 만들거나 ID 또는 이름을 가져 오는 방법을 찾을 수 없습니다.
현상금이 –
이봐 켄트 위의 세 가지 질문에 대한 답변을 게시 처음에 주어진 시도 할 수있는 이유 ? – Pablojim
죄송합니다. 개인적인 문제로 인해 로그인하지 못하게되었습니다. –