发表于: 2017-11-10 23:30:21
1 774
【今日完成】
今天继续学习了一下shiro。
Shiro 是一个强大而灵活的开源安全框架,能够非常清晰的处理认证、授权、管理会话以及密码加密。如下是它所具有的特点:
- 易于理解的 Java Security API;
- 简单的身份认证(登录),支持多种数据源(LDAP,JDBC,Kerberos,ActiveDirectory 等);
- 对角色的简单的签权(访问控制),支持细粒度的签权;
- 支持一级缓存,以提升应用程序的性能;
- 内置的基于 POJO 企业会话管理,适用于 Web 以及非 Web 的环境;
- 异构客户端会话访问;
- 非常简单的加密 API;
- 不跟任何的框架或者容器捆绑,可以独立运行。
Shiro 主要有四个组件
- SecurityManager
典型的 Facade,Shiro 通过它对外提供安全管理的各种服务。
- Authenticator
对“Who are you ?”进行核实。通常涉及用户名和密码。
这 个组件负责收集 principals 和 credentials,并将它们提交给应用系统。如果提交的 credentials 跟应用系统中提供的 credentials 吻合,就能够继续访问,否则需要重新提交 principals 和 credentials,或者直接终止访问。
- Authorizer
身 份份验证通过后,由这个组件对登录人员进行访问控制的筛查,比如“who can do what”, 或者“who can do which actions”。Shiro 采用“基于 Realm”的方法,即用户(又称 Subject)、用户组、角色和 permission 的聚合体。
- 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则要使用:
【今日收获】
对代码生成、部署,以及shiro有了更深入的理解
【明日计划】
后台已经测好了。明天开始写前台剩余部分
评论