Ich gebe Benutzern eine spezielle URL mit einem Zugriffsschlüssel darin. Benutzer, die die öffentliche Seite über diese spezielle URL aufrufen, sollten im Vergleich zu einfachen anonymen Benutzern einige zusätzliche Daten sehen können.
Ich möchte anonymen Benutzern basierend auf den im Request übergebenen Parametern eine zusätzliche Rolle geben, damit ich in meiner Vorlage etwas Ähnliches tun kann:
<@sec.authorize ifAnyGranted="ROLE_ADMIN, ROLE_USER, ROLE_INVITED_VISITOR">
...einige zusätzliche Inhalte, die der eingeladene Benutzer sehen kann
Aktuell implementiere ich Springs 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();
//Wie füge ich zusätzliche Rollen für den authentifizierten (potenziell anonymen) Benutzer hinzu?
}
}
}