我在春季应用中使用安全性。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
这是我的登录控制器:
@Configuration
static class ClientWebConfig extends WebMvcConfigurerAdapter {
public void addViewControllers(ViewControllerRegistry registry) {
registry.addViewController("/login").setViewName("fragments/login");
}
}
然后我做了菜单,在那里我尝试了注销按钮:
<li th:if="${#authorization.expression('isAuthenticated()')}">
<a href="/logout" th:href="@{/logout}">Logout</a>
</li>
我可以正确登录,但是当它加载菜单时会抱怨:
org.springframework.expression.spel.SpelEvaluationException: EL1011E:(pos 15): Method call: Attempted to call method expression(java.lang.String) on null context object
我该如何解决?
答案 0 :(得分:7)
尝试在授权对象的末尾添加一个问号,以便在使用它之前检查它是否为空。
$ {#授权?.expression( 'isAuthenticated()')}