Shiro (4. Shiro 整合 Thymeleaf) 学习笔记
文章目录1. 环境搭建2. 使用1. 环境搭建页面、数据库、后端代码和之前一样引入一个 Shiro 和 Thymeleaf 整合的依赖<!-- https://mvnrepository.com/artifact/com.github.theborakompanioni/thymeleaf-extras-shiro --><dependency><groupId>
·
1. 环境搭建
-
页面、数据库、后端代码和之前一样
-
引入一个 Shiro 和 Thymeleaf 整合的依赖
<!-- https://mvnrepository.com/artifact/com.github.theborakompanioni/thymeleaf-extras-shiro --> <dependency> <groupId>com.github.theborakompanioni</groupId> <artifactId>thymeleaf-extras-shiro</artifactId> <version>2.0.0</version> </dependency>
-
在所有页面中引入 Shiro 和 thymeleaf 的支持
<html lang="en" xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
2. 使用
<--! guest标签,用户没有身份验证时显示相应信息,即游客访问信息。-->
<shiro:guest>
</shiro:guest>
<--! user标签,用户已经身份验证/记住我登录后显示相应的信息。-->
<shiro:user>
</shiro:user>
<--! authenticated标签,用户已经身份验证通过,即Subject.login登录成功,不是记住我登录的。
-->
<shiro:authenticated>
</shiro:authenticated>
<--! notAuthenticated标签,用户已经身份验证通过,即没有调用Subject.login进行登录,包括记住我自动登录的也属于未进行身份验证。 -->
<shiro:notAuthenticated>
</shiro:notAuthenticated>
<--! principal标签,相当于((User)Subject.getPrincipals()).getUsername()。 -->
<shiro: principal/>
<shiro:principal property="username"/>
<--! lacksPermission标签,如果当前Subject没有权限将显示body体内容。 -->
<shiro:lacksPermission name="org:create">
</shiro:lacksPermission>
<--! hasRole标签,如果当前Subject有角色将显示body体内容。
-->
<shiro:hasRole name="admin">
</shiro:hasRole>
<--! 方法2 -->
<div shiro:hasRole="admin">
</div>
<--! hasAnyRoles标签,如果当前Subject有任意一个角色(或的关系)将显示body体内容。 -->
<shiro:hasAnyRoles name="admin,user">
</shiro:hasAnyRoles>
<--! 方法2 -->
<div shiro:hasAnyRoles="admin">
</div>
<--! lacksRole标签,如果当前Subject没有角色将显示body体内容。 -->
<shiro:lacksRole name="abc">
</shiro:lacksRole>
<--! hasPermission标签:是否 如果当前Subject有权限将显示body体内容 -->
<shiro:hasPermission name="user:create">
</shiro:hasPermission>
3. 方言配置
如果依赖和支持的标签都导入了,Shiro 标签还是不生效
就需要在 Shiro 的配置文件中加上方言配置
// Shiro 在 html 页面上方言配置
@Bean(name="shiroDialect")
public ShiroDialect shiroDialect(){
return new ShiroDialect();
}
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
已为社区贡献1条内容
所有评论(0)