Thymeleafの sec:authorize 内で変数にアクセスする
ThymeleafでSpring Securityの機能を使用できる thymeleaf-extras-springsecurity を使っていて、sec:authorize
内で変数の参照に手間取ったのでメモ。
READMEにめっちゃ書いてありました。#vars
オブジェクト(コンテキスト変数オブジェクト)を経由することで、変数にアクセスできます。
As with normal Spring EL expressions, Thymeleaf allows you to access a series of objects from them including the context variables map (the
#vars
object). In fact, you are allowed to surround your access expression with${...}
if it makes you feel more comfortable:
1 2 3
<div sec:authorize="${hasRole(#vars.expectedRole)}"> This will only be displayed if authenticated user has a role computed by the controller. </div>
thymeleaf-extras-springsecurity
なるほど。