原文作者:https://blog.youkuaiyun.com/zhuzhezhuzhe1
在前台页面使用shiro的标签,springboot2.0,先添加依赖
1、添加依赖
<dependency> <groupId>com.github.theborakompanioni</groupId> <artifactId>thymeleaf-extras-shiro</artifactId> <version>2.0.0</version> </dependency>
2、在ShiroConfig中配置ShiroDialect
@Bean public ShiroDialect shiroDialect() { return new ShiroDialect(); }
3、html中导入shiro标签
<!DOCTYPE html> <html xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
引用
<shiro:principal property="username"/>
shiro:principal获取得到的结果,是由自定义的ShiroRealm中的doGetAuthenticationInfo方法中
SimpleAuthenticationInfo authenticationInfo = new SimpleAuthenticationInfo( user, //shiro.principal获取得到结果 user.getPassword(), ByteSource.Util.bytes(user.getSalt()), getName() //realm name );
第一个参数决定的,此处我放入的是user实体类,shiro.principal获取得到的结果就是User类,如果放入的是String,获取结果则为String,后台获取方式(实体类)如
User user = (User)SecurityUtils.getSubject().getPrincipal()
去掉pom中的热部署tools
<!--<dependency>--> <!--<groupId>org.springframework.boot</groupId>--> <!--<artifactId>spring-boot-devtools</artifactId>--> <!--<optional>true</optional>--> <!--</dependency>-->
否则同一个类转换也报错