사용자에게 액세스 키가있는 특수 URL을 제공합니다. 이 특수 URL을 통해 공용 페이지에 액세스하는 사용자는 간단한 익명 사용자와 비교하여 일부 추가 데이터를 볼 수 있어야합니다.Acegi Security : 익명 사용자에게 인증에 다른 GrantedAuthority를 추가하는 방법
는 나는 내 템플릿에이 같은 작업을 수행 할 수 있도록 요청에 제공된 매개 변수를 기반으로 익명 사용자에게 몇 가지 추가 역할을 부여 할 : 현재
<@sec.authorize ifAnyGranted="ROLE_ADMIN, ROLE_USER, ROLE_INVITED_VISITOR">
...some additional stuff for invited user to see
</@sec.authorize>
내가 구현하고있어 봄의 OncePerRequestfilter
:
protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain chain) throws ServletException, IOException {
if (null != request.getParameter("accessKey")) {
if(isValid(request.getParameter("accessKey"))) {
Authentication auth = SecurityContextHolder.getContext().getAuthentication();
//how do i add additional roles to authenticated (potentially anonymous) user?
}
}
}
멋지다! 나는 자신을 추가 역할을 가진 새로운 AnonymousAuthenticationToken을 작성하여 해결했지만 훨씬 더 우아합니다. 감사 – miceuz