2017-12-29 32 views
0

Ich benutze Thymeleaf mit Feder Sicherheit. im HTML-Code Ich überprüfe Benutzerrolle:Thymelaf und Spring Security - benutzerdefinierte SpEL Ausdruck

<li class="has-sub" sec:authorize="hasRole('ROLE_ADMIN')"> 
</li> 

aber im Frühjahr ich eigene CustomSecurityExpressionRoot so implementiert ich in der Steuerung zum Beispiel

@PreAuthorize ("hasAccess verwenden kann (‘ ERMÄCHTIGUNG ')

Es ist möglich, Thymeleaf zu verbinden, um hasAccess (und andere verwenden zu können) s) Methoden aus meiner CustomSecurityExpressionRoot?

Antwort

0

Ich würde die Logik in einem Singleton Spring-Bean gesetzt hat:

@Component 
public class AccessEvaluator { 
    public boolean hasAccess(Authentication authentication, String permission) { 
     // implementation 
    } 
} 

Und dann in Thymeleaf Code:

<li th:if="${@accessEvaluator.hasAccess(#request.userPrincipal, 'PERMISSION')}"> 
</li> 
+0

Die richtige Antwort ist. Nur ein Nachteil dieser Idee ist multimpe hasAccess-Implementierung (für Thymeleaf und Feder [Controller, etc.]) – Inweo

Verwandte Themen