2017-12-29 69 views
0

저는 스프링 보안과 함께 Thymeleaf를 사용하고 있습니다. HTML 코드에서 나는 사용자 역할을 확인하고 있습니다 :하지만 봄에 나는 내가 '(예를 들어 컨트롤러Thymelaf 및 스프링 보안 - 사용자 정의 SpEL 표현

@PreAuthorize ("hasAccess을 사용할 수 있습니다 자신의 CustomSecurityExpressionRoot을 구현

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

허가) ")") ")

hasAccess (및 기타를 사용할 수 있도록 Thymeleaf를 연결할 수 있습니다. s) 방법을 내 CustomSecurityExpressionRoot에서? 나는 싱글 스프링 빈에 논리를 넣어 것

답변

0

:

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

그리고 Thymeleaf 코드 : 정답입니다

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

. 그 아이디어의 한 가지 단점은 Multimpe hasAccess 구현입니다 (Thymeleaf 및 spring [컨트롤러 등]). – Inweo