【养成记4】Shiro-1.4.0 华为鲲鹏云服务器安装实践

举报
isstech_wangzai 发表于 2019/12/09 16:22:51 2019/12/09
【摘要】 Apache Shiro是一个强大且易用的Java安全框架,执行身份验证、授权、密码和会话管理。使用Shiro的易于理解的API,您可以快速、轻松地获得任何应用程序,从最小的移动应用程序到最大的网络和企业应用程序。

一、 软件介绍

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

    1575879448630635.png

 

四、 编译与测试环境

本文选用华为鲲鹏云服务器ECS KC1实例做测试,KC1实例的处理器为兼容ARMv8指令集的鲲鹏920。详细规格如下:

类别

子项

版本

云主机配置

ECS实例类型

kc1.large.4

ECS配置

4U16GB

EVS

高IO(80GB)

云OS

Kernel

4.18.0

 

五、 编译安装与测试

依赖安装

Java环境。

 

编译安装

下载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");
}


验证测试

    说明:测试程序已打包到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

    1575879621638214.png


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代码了。通过不同的用户登录后,所展示的用户权限是不一样的,主页所显示内容就是有区别的。

 

    1575879734352324.png


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。