我想知道如何让不同的角色看到特定的侧栏按钮根据他们的角色使用springboot5我有管理员和用户,我的管理员应该能够看到“管理人”按钮上的侧栏,而正常用户不会看到任何东西在侧栏。
侧边栏.html
<security:authorize access="hasAuthority('ROLE_ADMIN')">
<li class="nav-item"><a class="nav-link collapsed"
href="#"
data-toggle="collapse" data-target="#collapseMenu" aria-expanded="true"
aria-controls="collapseMU"> </i>
<span> <b>Manage People</b>
</span>
</a></li>
<!-- sub-menu -->
<div id="collapseMenu" class="collapse">
<li class="nav-item"><a class="nav-link collapsed" href="#"
data-toggle="collapse" data-target="#collapseGroup"
aria-expanded="true" aria-controls="collapseGroup"></i>
<span>Show User Group</span>
</a>
</div>
</security:authorize>
secconfig.java(部分)
protected void configure(HttpSecurity httpSecurity) throws Exception {
httpSecurity.csrf().and().authorizeRequests().antMatchers("/").permitAll()
antMatchers("/landing")
.access("(hasAnyRole('ADMIN')
.anyRequest()
.authenticated()
.and()
.formLogin()
.loginPage("/")
.successHandler(loginSuccessHandler())
.failureHandler(loginFailedHandler())
.permitAll().and().logout().permitAll();
}
我试着添加 <security:authorize access="hasAuthority('ADMIN')">
进入sidebar.html,但用户页面仍然可以看到侧栏上的“管理人员”按钮。我做错什么了吗?我是新来的。谢谢:3
4条答案
按热度按时间rdrgkggo1#
如果您使用的是thymeleaf引擎,那么spring安全模块集成了“sec”方言。以下是详细信息
从链接:
这个sec:authorize attribute 当属性表达式的计算结果为true时呈现其内容:
请记住,在使用之前,您需要在根标记中包含thymeleaf安全命名空间:
6ioyuze22#
这个sec:authorize attribute 当属性表达式的计算结果为true时呈现其内容:
o4hqfura3#
确保将此添加到您的thymeleaf标签中
另外,在pom.xml文件中添加以下依赖项:
ws51t4hk4#
首先,检查用户是否经过身份验证,然后检查其角色是否为admin,然后显示内容,即