shiro的基本认识及做一个简单的授权登陆的例子

先推荐一个网站,无意中发现的。感觉蛮好的。

推荐一套完整的Shiro Demo,免费的。
Shiro Demo:http://www.sojson.com/shiro
Demo已经部署到线上,地址是http://shiro.itboy.net
管理员帐号:admin,密码:sojson.com 如果密码错误,请用sojson。PS:你可以注册自己的帐号,然后用管理员赋权限给你自己的帐号,但是,每20分钟会把数据初始化一次。建议自己下载源码,让Demo跑起来,然后跑的更快。

转载于:https://www.cnblogs.com/coder-lzh/p/8635558.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是一个简单Shiro登陆验证的完整程序示例: 1. 添加Shiro依赖 在pom.xml文件中添加Shiro的依赖: ```xml <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-core</artifactId> <version>1.7.1</version> </dependency> ``` 2. 创建Shiro的配置文件 在项目的src/main/resources目录下创建shiro.ini文件,写入如下配置: ```ini [users] admin=admin,admin guest=guest,guest [roles] admin=* [urls] /login = anon /logout = logout /** = authc ``` 其中,[users]配置了用户的账号和密码;[roles]配置了角色及其权限;[urls]配置了URL的访问权限。 3. 编写登陆验证代码 在Java代码中创建一个Shiro的工具类,用于登陆验证和权限控制。具体代码如下: ```java import org.apache.shiro.SecurityUtils; import org.apache.shiro.authc.*; import org.apache.shiro.config.IniSecurityManagerFactory; import org.apache.shiro.mgt.SecurityManager; import org.apache.shiro.subject.Subject; import org.apache.shiro.util.Factory; public class ShiroUtils { public static boolean login(String username, String password) { //1.创建SecurityManager工厂 Factory<SecurityManager> factory = new IniSecurityManagerFactory("classpath:shiro.ini"); //2.创建SecurityManager SecurityManager securityManager = factory.getInstance(); //3.将SecurityManager设置到运行环境中 SecurityUtils.setSecurityManager(securityManager); //4.创建Subject Subject subject = SecurityUtils.getSubject(); //5.创建Token UsernamePasswordToken token = new UsernamePasswordToken(username, password); try { //6.登陆 subject.login(token); return true; } catch (UnknownAccountException e) { //用户名不存在 System.out.println("用户名不存在"); } catch (IncorrectCredentialsException e) { //密码错误 System.out.println("密码错误"); } catch (LockedAccountException e) { //账户被锁定 System.out.println("账户被锁定"); } catch (AuthenticationException e) { //认证失败 System.out.println("认证失败"); } return false; } public static void logout() { //1.获取Subject Subject subject = SecurityUtils.getSubject(); //2.登出 subject.logout(); } } ``` 4. 调用登陆验证代码 在需要进行登陆验证的地方调用ShiroUtils的login方法进行验证。例如,在Servlet中可以这样写: ```java public class LoginServlet extends HttpServlet { @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { String username = req.getParameter("username"); String password = req.getParameter("password"); if (ShiroUtils.login(username, password)) { resp.sendRedirect("/index.jsp"); } else { resp.sendRedirect("/login.jsp"); } } } ``` 以上就是一个简单Shiro登陆验证的完整程序示例。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值