【养成记4】Shiro-1.4.0 华为鲲鹏云服务器安装实践
一、 软件介绍
Apache Shiro是一个强大且易用的Java安全框架,执行身份验证、授权、密码和会话管理。使用Shiro的易于理解的API,您可以快速、轻松地获得任何应用程序,从最小的移动应用程序到最大的网络和企业应用程序。
三个核心组件:Subject, SecurityManager 和 Realms.
Subject:即“当前操作用户”。但是,在Shiro中,Subject这一概念并不仅仅指人,也可以是第三方进程、后台帐户(Daemon Account)或其他类似事物。它仅仅意味着“当前跟软件交互的东西”。
Subject代表了当前用户的安全操作,SecurityManager则管理所有用户的安全操作。
SecurityManager:它是Shiro框架的核心,典型的Facade模式,Shiro通过SecurityManager来管理内部组件实例,并通过它来提供安全管理的各种服务。
Realm: Realm充当了Shiro与应用安全数据间的“桥梁”或者“连接器”。也就是说,当对用户执行认证(登录)和授权(访问控制)验证时,Shiro会从应用配置的Realm中查找用户及其权限信息。
从这个意义上讲,Realm实质上是一个安全相关的DAO:它封装了数据源的连接细节,并在需要时将相关数据提供给Shiro。当配置Shiro时,你必须至少指定一个Realm,用于认证和(或)授权。配置多个Realm是可以的,但是至少需要一个。
Shiro内置了可以连接大量安全数据源(又名目录)的Realm,如LDAP、关系数据库(JDBC)、类似INI的文本配置资源以及属性文件等。如果缺省的Realm不能满足需求,你还可以插入代表自定义数据源的自己的Realm实现。
二、 支持的操作系统
经过华为云严格实测,以下操作系统在鲲鹏生态中可以完整运行Varnish的全部功能:
CentOS7.6
三、 支持版本和获取方式
1、进入shiro官网: http://shiro.apache.org/
2、点击下图中的Download
四、 编译与测试环境
本文选用华为鲲鹏云服务器ECS KC1实例做测试,KC1实例的处理器为兼容ARMv8指令集的鲲鹏920。详细规格如下:
类别 | 子项 | 版本 |
云主机配置 | ECS实例类型 | kc1.large.4 |
ECS配置 | 4U16GB | |
EVS | 高IO(80GB) | |
云OS | Kernel | 4.18.0 |
五、 编译安装与测试
1 依赖安装
Java环境。
2 编译安装
下载shiro-x.x.x.jar 到本地,并且将shiro类库引入到项目中:
设置用户登录后的权限,例子:
public void onLoginSuccess(PrincipalCollection principals) { super.onLoginSuccess(principals); User user = UserUtils.getUser(); this.getUserService().updateUserLoginInfo(user); LogUtils.saveLog(user, ServletUtils.getRequest(), "系统登录", "loginLogout"); }
3 验证测试
说明:测试程序已打包到Tomcat下webapps的ROOT目录下,所以启动Tomcat后就可以访问项目了。
1) 切换到Tomcat所在的目录:
cd /opt/apache-tomcat-8.0.35/bin
2) 给执行的shell文件添加权限,否则执行时无法启动:
chmod -R 755 startup.sh chmod -R 755 catalina.sh
3) 启动Tomcat
./startup.sh
4) 到Tomcat下的logs目录,查询执行日志catalina.out,执行结果如下,项目启动成功:
...... 10-15 14:05:12.305 DEBUG [com.jeesite.common.beetl.BeetlUtils] - Loading beetl config: [classpath:/config/beetl-core.properties, classpath:/config/beetl.properties] 10-15 14:05:13.765 INFO [com.jeesite.modules.config.Application] - Started Application in 11.52 seconds (JVM running for 17.428) 15-Oct-2019 14:05:13.994 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory /opt/apache-tomcat-8.0.35/webapps/ROOT has finished in 16,019 ms 15-Oct-2019 14:05:13.998 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-8080"] 15-Oct-2019 14:05:14.003 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["ajp-nio-8009"] 15-Oct-2019 14:05:14.004 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in 16061 ms
5) 访问地址http://localhost:8080/ds 或者用命令curl http://localhost:8080/ds/login 就可以看见返回的页面的html代码了。通过不同的用户登录后,所展示的用户权限是不一样的,主页所显示内容就是有区别的。
- 点赞
- 收藏
- 关注作者
评论(0)