发表于: 2017-11-10 23:30:21

1 774


【今日完成】

今天继续学习了一下shiro。


Shiro 是一个强大而灵活的开源安全框架,能够非常清晰的处理认证、授权、管理会话以及密码加密。如下是它所具有的特点:

  1. 易于理解的 Java Security API;
  2. 简单的身份认证(登录),支持多种数据源(LDAP,JDBC,Kerberos,ActiveDirectory 等);
  3. 对角色的简单的签权(访问控制),支持细粒度的签权;
  4. 支持一级缓存,以提升应用程序的性能;
  5. 内置的基于 POJO 企业会话管理,适用于 Web 以及非 Web 的环境;
  6. 异构客户端会话访问;
  7. 非常简单的加密 API;
  8. 不跟任何的框架或者容器捆绑,可以独立运行。

Shiro 主要有四个组件

 

  1. SecurityManager

    典型的 Facade,Shiro 通过它对外提供安全管理的各种服务。

  2. Authenticator

    对“Who are you ?”进行核实。通常涉及用户名和密码。

    这 个组件负责收集 principals 和 credentials,并将它们提交给应用系统。如果提交的 credentials 跟应用系统中提供的 credentials 吻合,就能够继续访问,否则需要重新提交 principals 和 credentials,或者直接终止访问。

  3. Authorizer

    身 份份验证通过后,由这个组件对登录人员进行访问控制的筛查,比如“who can do what”, 或者“who can do which actions”。Shiro 采用“基于 Realm”的方法,即用户(又称 Subject)、用户组、角色和 permission 的聚合体。

  4. Session Manager

    这个组件保证了异构客户端的访问,配置简单。它是基于 POJO/J2SE 的,不跟任何的客户端或者协议绑定。

 

Shiro 的认证和签权可以通过 JDBC、LDAP 或者 Active Directory 来访问数据库、目录服务器或者 Active Directory 中的人员以及认证 / 签权信息。SessionManager 通过会话 DAO 可以将会话保存在 cache 中,或者固化到数据库或文件系统中。

 

简介

apache shiro 是一个功能强大和易于使用的Java安全框架,为开发人员提供一个直观而全面的的解决方案的认证,授权,加密,会话管理。

在实际应用中,它实现了应用程序的安全管理的各个方面。

 

shiro的功能

 

 

apache shiro能做什么?

支持认证跨一个或多个数据源(LDAP,JDBC,kerberos身份等)

执行授权,基于角色的细粒度的权限控制。

增强的缓存的支持。

支持web或者非web环境,可以在任何单点登录(SSO)或集群分布式会话中使用。

主要功能是:认证,授权,会话管理和加密。



然后看了一下博韬的小课堂,代码自动生成和部署服务器都看了。


看了之后再看了下WIKI上面的教程,这才能领会。一开始看这个教程,云里雾里的,不清楚在讲什么。


后端学员复盘环境搭建规范

  1  通过xshell5连接上dev1,ssh ptteng_dev_2连接上dev2

  2. 复盘项目后端代码统一放在dev2中的/data/svn/student/carrots/目录下

  3   新的小组进复盘则在学员svn的carrots/路径下新建自己的小组,执行svn update 即可更新到dev2中,以后有改动也是在这个目录下执行svn update

  4   dev2的复盘目录为  /data/webs/下存放web部分(如carrots-admin-web,carrots-home-web)

  5   /data/services/下存放service部分(如carrots-home-service),core无需存放

  6   初次部署:在/data/webs下新建自己项目的web名,如carrots-admin-web,carrots-home-web,再在这两个文件夹下面各自新建backups,deploy  ,logs, run 文件夹,再把其他项目比如academy的containers文件夹复制过来,其中,

                  backups是备份目录,以后需要发布新的war包的时候,先把旧的包复制到backups下

                  containers是resin容器,需要更改里面的配置containers/resin/conf/resin.xml,里面有三个端口号需要配置(复盘项目端口登记):http port(前端访问)   watchdog port 还有server port (resources),两个web 的端口是不一样的

                  deploy是脚本存放目录,一般启动停止resin,部署脚本等相关都放在这里

                  logs 是日志文件目录

                  run则是war包解压后文件存放位置,里面有四个文件夹META-INF   r    temp    WEB-INF

7   手动发布需要

               ①复制原有war(tar)包到backups下

               ②删除run下的除了temp文件夹外的文件及文件夹

               ③将打好的war(tar)包放到run下

               ④使用命令jar  -xvf 包名 解压war包   解压到当前文件夹

               ⑤重启resin:sh stop.sh      sh resin.start.sh(需要修改脚本里面的resin路径指向到containers/resin/bin/路径的相应脚本)

               ⑥其中,打war包在/data/svn/student/carrots/trunk的对应小组名的web下打包,如在carrots-admin-web下有src和pom.xml  ,执行mvn clean install即可打成war包,service则要使用:

                   mvn clean install -Dmaven.test.skip=true assembly:assembly命令打tar包
               ⑦相应地,service文件夹下有四个文件夹:backups  deploy  logs  run ,
               ⑧ 其中backups  deploy  logs作用雷同不做赘述,不过deploy下的启动脚本可以参考/data/service/academy/academy-document-service/deploy/下的启动和停止的脚本,修改HELLO_SERVICE_HOME参数的路径即可。
               ⑨services 下的run下有classes(存放编译后的代码和配置文件)、lib(存放jar包)也是先备份,再删除原有的classes和lib,再解压tar包,解压用tar -zxvf 包名解压到 run目录下
 
8  将web和service部署好之后,在开发机的数据库中建立自己的数据库,通过配置group.xml连接到数据库,这时候再先启动service 再启动web即可,通过ip+端口即可访问


【今日收获】

对代码生成、部署,以及shiro有了更深入的理解


【明日计划】

后台已经测好了。明天开始写前台剩余部分


返回列表 返回列表
评论

    分享到