Springboot+thymeleaf+jpa+shiro的框架前端HTML页面引用shiro当前登录用户名

近期想在HTML页面直接引用shiro安全框架登录成功后的用户名,因为shiro会自动保存当前用户信息在session中,因为初次使用,想着有什么快捷方式去引用shiro的用户名的值,于是乎我搜索了很久,

  1. 网上很多解决方法是: <shiro:principal property="username"/>
  2. 还需要在HTML标签添加: xmlns:shiro="http://www.pollix.at/thymeleaf/shiro"
  3. 然后,还需要在pom文件中添加依赖:
 		<dependency>
           <groupId>com.github.theborakompanioni</groupId>
            <artifactId>thymeleaf-extras-shiro</artifactId>
           <version>2.0.0</version>
       </dependency>

but,不管用,前端页面还是没有显示出来!!!!

但想了想,最根本的是前端页面想要取后端数据,比较管用的还是在controller层携带参数。
  1. 想取到shiro的用户信息,使用:SecurityUtils.getSubject().getPrincipal();这个是shiro里的方法,以下为controller代码示例:
import com.neo.model.UserInfo;
import org.apache.shiro.SecurityUtils;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;

@Controller
public class HelloController {

    @RequestMapping("/")
    public String index(Model model) {
        UserInfo userInfo = (UserInfo) SecurityUtils.getSubject().getPrincipal();
        model.addAttribute("name", userInfo.getName());
        return "hello";
    }
}
  1. 然后,前端HTML代码中,轻松取了:<span class="navbar-brand" th:text="|${name},您好!|">hello!</span>
    HTML局部代码如下:
<nav class="navbar navbar-default" role="navigation">
        <div class="container-fluid">
            <div class="navbar-header">
<!--                <shiro:principal property="username"/>不管用!!!!-->
                <span class="navbar-brand" th:text="|${name},您好!|">hello!</span>
            </div>
            <div>
                <ul class="nav navbar-nav">
                    <li class="active"><a th:href="@{/list}">iOS</a></li>
                    <li><a th:href="@{/list}">SVN</a></li>
                    <li class="dropdown">
                        <button class="dropdown-toggle" data-toggle="dropdown">
                            Java
                            <b class="caret"></b>
                        </button>
                        <ul class="dropdown-menu">
                            <li><a th:href="@{/list}">jmeter</a></li>
                            <li><a th:href="@{/list}">EJB</a></li>
                            <li><a th:href="@{/list}">Jasper Report</a></li>
                            <li class="divider"></li>
                            <li><a th:href="@{/list}">分离的链接</a></li>
                            <li class="divider"></li>
                            <li><a th:href="@{/list}">另一个分离的链接</a></li>
                        </ul>
                    </li>
                </ul>
            </div>
        </div>
    </nav>
  1. 前端效果展示:
    在这里插入图片描述

最后,真香!

基于Spring Boot 2.0、Spring Data JPAThymeleafShiro开发的后台管理系统可以实现一个功能强大且易于维护的应用程序。 这套技术栈的优势包括: 1. Spring Boot 2.0:它是一个快速构建应用程序的框架,提供自动化配置和减少样板代码的优势,使开发变得更加高效。 2. Spring Data JPA:它是一个基于JPA的持久化框架,通过简化数据库操作和提供对各种数据库的支持,大大减少了开发人员的工作量。 3. Thymeleaf:它是一个服务器端的Java模板引擎,可以直接处理HTML、XML、JavaScript、CSS和文本等内容。它具有易于学习和使用的特点,并且能够与Spring Boot实现良好的集成。 4. Shiro:它是一个功能强大且灵活的Java安全框架,可以提供认证、授权、加密和会话管理等功能。通过集成Shiro,我们可以轻松实现后台管理系统的用户认证和访问控制等安全需求。 基于这套技术栈,我们可以开发一个后台管理系统,实现用户登录、权限管理、菜单管理、角色管理、用户管理等功能。利用Spring Boot的自动化配置和快速启动特性,我们可以快速搭建项目的骨架,并集成Spring Data JPA实现数据访问,利用Thymeleaf开发可复用的页面组件,通过Shiro实现用户认证和授权。 总之,基于Spring Boot 2.0、Spring Data JPAThymeleafShiro的后台管理系统,不仅可以极大地提高开发效率,还能够提供丰富的功能和安全性,帮助我们快速构建高质量的应用程序。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值