[SPRING] 스프링 3 보안을 사용하여 jsp 페이지에서 내 사용자 정의 사용자 객체에 액세스하기
SPRING스프링 3 보안을 사용하여 jsp 페이지에서 내 사용자 정의 사용자 객체에 액세스하기
UserDetailsService를 구현했으며, MyUser (UserDetails를 구현)의 인스턴스를 반환합니다.
public MyUser loadUserByUsername(String arg0)
이제 My JSP 페이지에서 MyUser의 getters / fields에 액세스하고 싶습니다.
${pageContext.request.userPrincipal.name}
다만, Principal 오브젝트에의 액세스 밖에 할 수 없습니다. MyUser 객체에 액세스하려면 어떻게해야합니까?
해결법
-
==============================
1.JSP 페이지에서 쉽게 추가했습니다 :
JSP 페이지에서 쉽게 추가했습니다 :
<%@ taglib prefix="sec" uri="http://www.springframework.org/security/tags" %> ... <sec:authentication property="principal.firstname" />
principal이 실제로 MyUser의 인스턴스 인 경우 "firstname"은 내 사용자 정의 getter 및 setter가 될 수 있습니다.
-
==============================
2.성공적인 로그인 직후 HTTPSesson을 분석 한 결과, SPRING_SECURITY_CONTEXT라는 속성이 있다는 것을 알았습니다. 예를 들어, 광산 사용자 정의 UserDetails에는 firstName 속성을 가진 user라는 객체가 있습니다. JSP에서이 속성의 값은 다음 값으로 도달 할 수 있습니다.
성공적인 로그인 직후 HTTPSesson을 분석 한 결과, SPRING_SECURITY_CONTEXT라는 속성이 있다는 것을 알았습니다. 예를 들어, 광산 사용자 정의 UserDetails에는 firstName 속성을 가진 user라는 객체가 있습니다. JSP에서이 속성의 값은 다음 값으로 도달 할 수 있습니다.
${sessionScope.SPRING_SECURITY_CONTEXT.authentication.principal.user.firstName}
-
==============================
3.MyUser 객체가 Principal을 구현하고 성공적인 로그인시 http 세션에 배치하면 세션에서 가져와 캐스팅 할 수 있습니다.
MyUser 객체가 Principal을 구현하고 성공적인 로그인시 http 세션에 배치하면 세션에서 가져와 캐스팅 할 수 있습니다.
AuthenticationSuccessHandler를 구현하여 UserDetailsService를 세션에 삽입하고 세션에 배치 할 수 있습니다.
그런 다음
요소를 처리하는 UsernamePasswordauthenticationFilter에 AuthenticationSuccessHandler를 삽입 할 수 있습니다. 보안 컨텍스트 구성에 대한 세부 정보를 제공하면 세부 정보를 제공 할 수 있습니다.
from https://stackoverflow.com/questions/7807967/accessing-my-custom-user-object-in-jsp-page-using-spring-3-security by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] 상황에 따른 스캔 구성 요소 필터 (0) | 2019.05.10 |
---|---|
[SPRING] mvc : intercepter 정보, 제외 된 경로 설정 방법 (0) | 2019.05.10 |
[SPRING] Spring MVC에서 커스텀 MediaType을 어떻게 설정 하는가? (0) | 2019.05.10 |
[SPRING] JSF 요청시 @ManagedBean @Component 클래스의 @ Autowired 서비스가 null입니다. [duplicate] (0) | 2019.05.10 |
[SPRING] JUnit5의 @Nested 클래스에서 테스트 롤백이 작동하지 않습니다. (0) | 2019.05.10 |