当前位置:网站首页 > Java教程 > 正文

java配置shiro教程



Apache Shiro 是一个开源的轻量级的 Java 安全框架,它提供身份验证、授权、密码管理以及会话管理等功能。相对于 Spring SecurityShiro 框架更加直观、易用,同时也能提供健壮的安全性。

在传统的 SSM 框架中,手动整合 Shiro 的配置步骤还是比较多的,针对 Spring BootShiro 官方提供了 shiro-spring-boot-web-starter 用来简化 Shiro Spring Boot 中的配置。下面通过样例进行演示。


首先编辑项目的

pom.xml

文件,添加

Shiro

依赖以及页面模板依赖:

  • shiro-spring-boot-web-starterShiro 依赖
  • spring-boot-starter-thymeleafThymeleaf 依赖,本样例使用了 Thymeleaf 模版。
  • thymeleaf-extras-shiro:实现在 Thymeleaf 中使用 shiro 标签。

注意: 这里不需要添加 spring-boot-starter-web 依赖,因为 shiro-spring-boot-web-starter 中已经依赖了 spring-boot-starter-web


(1)首先在

application.properties

中配置

Shrio

的基本信息:

# 开启 Shrio 配置,默认为 true
shiro.enabled=true
# 开启 Shrio Web 配置,默认为 true
shiro.web.enabled=true
# 配置登录地址,默认为"login.jsp"
shiro.loginUrl=/login
# 配置登录成功地址,默认为"/"
shiro.successUrl=/index
# 配置未获授权默认跳转地址
shiro.unauthorizedUrl=/unauthorized
# 是否允许通过 URL 参数实现会话跟踪,默认为 true。如果网站支持 Cookie,可以关闭次选项。
shiro.sessionManager.sessionIdUrlRewritingEnabled=true
# 是否允许通过 Cookie 实现会话跟踪,默认为 true。
shiro.sessionManager.sessionIdCookieEnabled=true


(2)接着在

Java

代码中配置

Shrio

,其中最关键的是开头提供的两个

Bean


(1)创建一个 Controller 用于配置登录接口以及相关页面的访问接口:


(2)对于其他不需要角色就能访问的接口,直接在

WebMvc

中配置即可:


全局异常处理器可以进行全局异常处理,本样例主要是处理授权异常:


(1) login.html 是一个普通的登录页面,登录失败时通过一个 div 显示登录失败信息:


(2)

index.html

是登录成功后的首先展示当前登录用户的登录名,以及一个“

注销登录

”链接,同时:


  • 如果当前登录用户具备“admin”角色,则展示一个“管理员页面”的超链接
  • 如果当前用户具备“admin”或者“user”角色,则展示一个“普通用户页面”的超链接


(3)

admin.html

是一个普通的管理员信息展示页面:


(4)

user.html

是一个普通的用户信息展示页面:


(5)

unauthorized.html

是一个授权失败的展示页面,该页面还会展示授权出错的信息。


(1)启动项目,访问登录页(随便访问任意一个接口都会跳到登录页):


(2)使用 hangge 用户登录,由于该用户不具备 admin 角色,因此登录成功后的页面没有“ 管理员页面”超链接:


(3)点击“

普通用户页面

”链接即可进入普通用户页面:


(4)由于该用户不具备

admin

角色,如果我手动在浏览器地址拦输入“

http://localhost:8080/admin

”访问管理员页面,则会跳转到未授权页面。

版权声明


相关文章:

  • java入门新手教程2025-02-10 20:34:02
  • java的struts教程2025-02-10 20:34:02
  • java教程文件2025-02-10 20:34:02
  • java web程序设计教程2025-02-10 20:34:02
  • java商品入门教程2025-02-10 20:34:02
  • 前锋java在线教程2025-02-10 20:34:02
  • java制作小游戏教程2025-02-10 20:34:02
  • java教程3022025-02-10 20:34:02
  • java nio 教程例子2025-02-10 20:34:02
  • java语言系统教程2025-02-10 20:34:02