博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Shiro整合web01
阅读量:6238 次
发布时间:2019-06-22

本文共 2448 字,大约阅读时间需要 8 分钟。

 Shiro 集成 Web 配置
 <listener>
    <listener-class>org.apache.shiro.web.env.EnvironmentLoaderListener</listener-class>
  </listener>
   
<!-- 添加shiro支持 -->
<filter>
    <filter-name>ShiroFilter</filter-name>
    <filter-class>org.apache.shiro.web.servlet.ShiroFilter</filter-class>
</filter>
 
<filter-mapping>
    <filter-name>ShiroFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping> 
---------------------------------------------------------------------------------------
 [main]
authc.loginUrl=/login   没登录的话先进行身份认证
roles.unauthorizedUrl=/unauthorized.jsp
//权限不够
perms.unauthorizedUrl=/unauthorized.jsp
/权限不够
[users]
java1234=123456,admin
jack=123,teacher
marry=234
json=345
[roles]
admin=user:*
teacher=student:*
[urls]
/login=anon
/admin=authc
/student=roles[teacher]  请求/student这个url必须有一个用户里角色为teacher的用户
/teacher=perms["user:create"]
---------------------------------------------------------------------------------------------------------------------------
 public class LoginServlet extends HttpServlet{
 
private static final long serialVersionUID = 1L;
 
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// TODO Auto-generated method stub
System.out.println("login doget");
req.getRequestDispatcher("login.jsp").forward(req, resp);
}
 
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("login dopost");
String userName=req.getParameter("userName");
String password=req.getParameter("password");
Subject subject=SecurityUtils.getSubject();
UsernamePasswordToken token=new UsernamePasswordToken(userName, password);
try{
subject.login(token);
Session session = subject.getSession();
System.out.println("sessionId:"+session.getId());
System.out.println("sessionHost:"+session.getHost());
System.out.println("sessionTimeout:"+session.getTimeout());
session.setAttribute("info", "session的数据");
resp.sendRedirect("success.jsp");
}catch(Exception e){
e.printStackTrace();
req.setAttribute("errorInfo", "用户名或者密码错误");
req.getRequestDispatcher("login.jsp").forward(req, resp);
}
}
--------------------------------------------------------------------------------------------
<body>欢迎你!
<shiro:hasRole name="admin">
欢迎有admin角色的用户
</shiro:hasRole>
<shiro:hasPermission name="student:create">
欢迎有student:create权限的用户
<shiro:principal/>
</shiro:hasPermission>
</body>

转载于:https://www.cnblogs.com/MAPO/p/8490796.html

你可能感兴趣的文章
Windows8.1
查看>>
maven编译的时候跳过test
查看>>
java回调函数的理解
查看>>
centos7的使用
查看>>
【持续更新】IDEA常用快捷键
查看>>
CentOS 编译安装新版git
查看>>
12.6 Nginx安装 12.7 默认虚拟主机 12.8 Nginx用户认证12.9 Nginx域名重定向
查看>>
tomcat 启动和关闭源码查看
查看>>
JavaScript设计模式之观察者模式
查看>>
osx中让idea使用官方版的git
查看>>
js 数组 map方法
查看>>
Linux 工程师技术
查看>>
Apk代码混淆
查看>>
线程池监控
查看>>
php源码编译常见错误解决方案
查看>>
ios 开发中UISegmentedControl 用法
查看>>
分布式网站架构后续:zookeeper技术浅析
查看>>
Redis学习(二)—— 数据类型(1)
查看>>
Darwin Streaming Server 核心代码分析
查看>>
Linux系统安装
查看>>