Shiro - JSP页面标签应用

简介: Shiro - JSP页面标签应用

Shiro提供了JSTL 标签用于在JSP 页面进行权限控制,如根据登录用户显示相应的页面按钮。

Shiro支持三种方式实现授权过程

  • 编码实现
  • 注解实现
  • JSP Taglig实现

JSP Taglig实现 - Shiro在JSP页面使用标签的形式表现,首先引入shiro标签。**

<%@ taglib prefix="shiro" uri="http://shiro.apache.org/tags" %>

【1】

如果有该角色,则校验通过。name属性值只能为单个。

示例如下:

 <shiro:hasRole name ="admin">
 ...
 <shiro:hasRole/>

【2】

如果是角色中的一个,则校验即可通过。name值可为多个。

示例如下:

<shiro:hasAnyRoles name ="admin,normal">
...
</shiro:hasAnyRoles>

【3】

如果用户没有该角色,则校验通过。name属性值只能有一个。

示例如下:

<shiro:lacksRole name ="admin">
...
</shiro:lacksRole >

【4】

如果用户有某个权限,则校验通过。name属性值只能有一个。

示例如下:

<shiro:hasPermission name = "user:area">
....
</shiro:hasPermission>

【5】

如果用户没有该权限,则校验通过。name属性值只能有一个。

示例如下:

<shiro:lacksPermissionname ="admin">
...
</shiro:lacksPermission>

6】

来宾标签,如果未认证(登录) 或者 系统未记住,则通过校验。

In other words : 验证当前用户是否为“访客”,即未认证(包含未记住)的用户。

范围:未认证已记住+未记住已认证+未认证且未记住。

示例如下:

<shiro:guest>
  Hello,Please login..
</<shiro:guest>

【7】

用户标签,与来宾标签对应,如果已经认证(登录) 或 记住我,则通过校验。

In other words : 认证通过或已记住的用户 。

范围:认证未记住+记住未认证+认证且记住。

<shiro:user>  
    Welcome back John! 
</shiro:user>  

【8】

认证标签比user标签更严格,只有**通过认证(登录)**才可通过校验。

In other words : 只有已认证通过的用户,不包含只有已记住(记住我)的用户,这是与user标签的区别所在

范围:认证且未记住+认证且已记住。

<shiro:authenticated>  
    ....
</shiro:authenticated> 

【9】

未认证通过用户,与authenticated标签相对应。与guest标签的区别是,该标签包含已记住用户。 即,“记住我”进行登录的yeshuyu未进行身份认证。

范围:未认证且未记住+未认证且已记住。

示例如下:

<shiro:notAuthenticated>  
    Please <a href="login.jsp">login</a> 
</shiro:notAuthenticated>  

【10】

显示用户身份信息,默认调用Subject.getPrincipal() 获取,即Primary Principal。

示例如下:

Hello, <shiro:principal/>, how are you today?  


目录
相关文章
|
3月前
|
Java 应用服务中间件 开发工具
如何使用IDEA创建JSP页面
如何使用IDEA创建JSP页面
258 0
|
5月前
|
Java 数据安全/隐私保护
JavaBean组件<jsp:forward>动作<jsp:param>动作登录页面输入用户名和密码,然后进入检查页面判断是否符合要求,符合要求跳转到成功界面,不符合要求返回登录界面,显示错误信息。
该博客文章通过JavaBean组件和JSP动作元素`<jsp:forward>`与`<jsp:param>`的使用示例,演示了用户登录流程,包括登录信息的提交、验证以及根据验证结果进行的页面跳转。
JavaBean组件<jsp:forward>动作<jsp:param>动作登录页面输入用户名和密码,然后进入检查页面判断是否符合要求,符合要求跳转到成功界面,不符合要求返回登录界面,显示错误信息。
|
5月前
|
存储 Java
JSP中实现留言页面的编写并将留言信息展示出来
这篇文章介绍了如何在JSP中编写留言页面,并通过JavaBean类存储用户留言信息,同时展示了留言信息的展示方法。
JSP中实现留言页面的编写并将留言信息展示出来
|
5月前
|
缓存 Java 应用服务中间件
SpringMVC入门到实战------七、SpringMVC创建JSP页面的详细过程+配置模板+实现页面跳转+配置Tomcat。JSP和HTML配置模板的差异对比(二)
这篇文章详细介绍了在SpringMVC中创建JSP页面的全过程,包括项目的创建、配置、Tomcat的设置,以及如何实现页面跳转和配置模板解析器,最后还对比了JSP和HTML模板解析的差异。
SpringMVC入门到实战------七、SpringMVC创建JSP页面的详细过程+配置模板+实现页面跳转+配置Tomcat。JSP和HTML配置模板的差异对比(二)
|
5月前
|
Java
`<jsp:getProperty>`动作和`<jsp:setProperty>`动作的使用在一个静态页面填写图书的基本信息,页面信息提交给其他页面,并且在其页面显示。要去将表单元素的值赋值给Java
该博客文章讲解了JSP中`<jsp:getProperty>`和`<jsp:setProperty>`动作的使用方法,包括它们的语法格式和如何在页面中使用这些动作来获取和设置JavaBean对象的属性值,并通过图书信息的填写和展示示例进行了演示。
`<jsp:getProperty>`动作和`<jsp:setProperty>`动作的使用在一个静态页面填写图书的基本信息,页面信息提交给其他页面,并且在其页面显示。要去将表单元素的值赋值给Java
|
5月前
|
Java
编写一个jsp页面,利用Scriptlet编写一段计算代码,要求用零作为除数,并使用page指令将错误信息显示在另外一个jsp页面,产生的错误信息为“错误,不能用0做除数”
该文章展示了如何创建一个JSP页面,使用Scriptlet编写包含除零操作的计算代码,并配置page指令将错误信息重定向至另一个JSP页面进行显示。
编写一个jsp页面,利用Scriptlet编写一段计算代码,要求用零作为除数,并使用page指令将错误信息显示在另外一个jsp页面,产生的错误信息为“错误,不能用0做除数”
|
7月前
|
存储 Java 关系型数据库
基于Servlet和JSP的Java Web应用开发指南
【6月更文挑战第23天】构建Java Web应用,Servlet与JSP携手打造在线图书管理系统,涵盖需求分析、设计、编码到测试。通过实例展示了Servlet如何处理用户登录(如`LoginServlet`),JSP负责页面展示(如`login.jsp`和`bookList.jsp`)。应用基于MySQL数据库,包含用户和图书表。登录失败显示错误信息,成功后展示图书列表。部署到Tomcat服务器测试功能。此基础教程为深入Java Web开发奠定了基础。
144 10
|
7月前
|
缓存 负载均衡 安全
Servlet与JSP在Java Web应用中的性能调优策略
【6月更文挑战第23天】在Java Web中,Servlet和JSP调优至关重要,以应对高并发和复杂业务带来的性能挑战。优化包括Servlet复用、线程安全、数据库连接池,以及JSP的编译优化、使用JSTL、页面缓存和静态内容分离。全局优化涉及负载均衡、异步处理和缓存策略。通过这些实践,开发者能提升应用响应速度和吞吐量,确保高负载下的稳定运行。
100 7
|
3月前
|
Java 容器
【学习笔记】Jsp与Servlet技术
【学习笔记】Jsp与Servlet技术
92 0
|
5月前
|
SQL Java 数据库
jsp中使用Servlet查询SQLSERVER数据库中的表的信息,并且打印在屏幕上
该博客文章介绍了在JSP应用中使用Servlet查询SQL Server数据库的表信息,并通过JavaBean封装图书信息,将查询结果展示在Web页面上的方法。
jsp中使用Servlet查询SQLSERVER数据库中的表的信息,并且打印在屏幕上