- 浏览: 223187 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (212)
- 架构师-01-文档目录 (3)
- 架构师-02-组织 (7)
- 架构师-03-实施 (35)
- 架构师-04-监督 (14)
- 架构师-05-工具 (29)
- 架构师-09-引用文集 (63)
- 专题-01-微博应用 (5)
- 专题-02-GoogleEarth (1)
- 专题-03-运行维护 (9)
- 专题-04-经纪人营平 (3)
- 专题-05-RCP&RAP (5)
- 专题-06-框架PK (3)
- 专题-07-Android (13)
- 专题-08-UI (3)
- 专题-liferay6 (6)
- 专题-extjs4 (3)
- 专题-CXF (3)
- 专题-封闭网络的社会化 (0)
- 扯谈 (4)
- 外包 (9)
- 专题-C++ (4)
- 专题-09-BI (2)
- jquery&easyui (2)
- 专题-搜索引擎 (1)
最新评论
-
brighter:
oMapper.configure(Deserializati ...
jackson 抛出 bean 中没有定义字段的错误,只好用 gson -
PassFeed_free:
public Bitmap decode(ImageDecod ...
android universalimageloader 几点改进 -
PassFeed_free:
楼主你好, 请问这个库, 在大屏显示高清图片 ,listvie ...
android universalimageloader 几点改进 -
yonghong:
楼主只是揣测
JIRA4.1 升级到 JIRA5.1 -
abdxj:
"Could NOT parse license t ...
JIRA4.1 升级到 JIRA5.1
Spring Security 用了几次,还没有在集群环境中使用的,这次需要在集群中使用了。
(一)认证的基本术语
- User - 用户
- Fecerated User - 联合用户
- External User - 外部用户
- Authentication - 验证
- Credentials - 凭据
- Application Security Layer - 应用安全层,过渡器检查每个 http 请求。
- Application Layer - 应用层,每个 http 请求访问应用层都必须通过应用安全层。
(二)URI mappings
- /admin/** - 管理控制台
- /rpc/xmlrpc - 基于 XML 的 XML-RPC
- /rpc/rest - RESTful HTTP services
- /rpc/soap - SOAP HTTP services
- /** - 全部需要验证
(三)Filter Chains
- Session 集成 - 访客进入或者 Http 请求访问安全上下文 - httpSessionContextIntegrationFilter
- 验证 - Spring Security 默认实现
FormAuthenticationProcessingFilter
- formAuthenticationFilter - Cookie 验证 - 处理“记住我”cookies,长效 Http cookies 用于验证 session 用户 - rememberMeProcessingFilter
- Feed 基本认证 - Rss/Atom feeds 阅读器验证,通常是专门的阅读器,不是基于浏览器 - feedBasicAuthenticationFilter
- 异常事务 - 各种安全相关的异常重定向,通常在 struts 层处理 -exceptionTranslationFilter
- 事务验证 - 在应用安全屋和代码间强制验证 - pAuthenticationTranslationFilter
(四)验证约定
-
pAuthenticationTranslationFilter 会检查
SecurityContext
的有效性 - SecurityContextHolder.getContext().setAuthentication(new UserAuthentication(new UserTemplate()))
- DWR 和 webservice 的认证检查使用代理层,DWR 使用主 web 应用的 session 验证,REST 使用基础 HTTP 认证,通常每个 web services 请求都会进行验证
(五)验证
- 权限 - 管理控制台提供页面用于分配用户和用户组权限
- 分组 - 合并用户的系统权限。权限可以分配给组和组成员,重复的权限会被覆盖
- 代理 - 代理应用层对象是透明的,不影响安全层代码
(六)实现类
- PermissionsManager
- GroupManager
- Security 子类 PAuthentication
(七)Webservice 安全入门
- 客户端登录连接 web service 使用 username token
- WSSE 规范,用于 SOAP 用户认证,也能扩展到 HTTP Service。如许多 Atom 和 RESTful 服务使用简单的验证还不够,这些简单的验证包括 HTTP 基础验证,HTTP SSL,HTTP Digest, Hash-Based 认证。
- 工作方式,每一个 SOAP 请求都包含安全报头,报头包含 username 和 password,符合 HTTP 认证规范。
- Username Token Profile Specification 的 PasswordText 选项是文本方式传输,须使用 SSL 加密。 PasswordDigest 使用 WSS4j interceptor 实现。 PasswordDigest 工作方式:
- 客户端由两段信息:用户名和密码
- 客户端创建一个随机数,加密随机字串
- 客户端根据当前时间创建时间戳
- PasswordDigest = Base64 \ (SHA1 (随机数 + 时间戳 + 密码)
- 结合随机数和时间戳是为了避免重用的报头
- 客户端给每个请求设置用户名和摘要
(八)Spring security 怎样进行盐值加密
1. 以前的md5原理是
密码密文=md5算法(密码明文);
这样明文与密文其实还是一一对应的
那么人家就可以用字典攻击(就是一个一个的试)来探测密码
加盐(盐值加密)的算法很多
2. Spring security用的是:
密码密文=md5算法(密码明文{盐值});
这个盐值就可以自己随便设置了,弄一个静态字符串或者用用户的登录名
举个例子:
用户名:thr
密码:fou
用用户名作为盐值
打开网页:http://www.md5.org.cn/md5/Encrypt.asp
输入:thr{fou}
得到密文:5dbae131e3eea6ce50068aab9292c8c3
(九)附件是最简单配置可运行的 war 包。
<?xml version="1.0" encoding="UTF-8"?> <b:beans xmlns="http://www.springframework.org/schema/security" xmlns:b="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-3.1.xsd"> <!--无需权限--> <http pattern="/css/**" security="none"/> <http pattern="/images/**" security="none"/> <http auto-config='true' access-denied-page="/403.jsp"> <!--匿名用户--> <intercept-url pattern="/login.jsp*" access="IS_AUTHENTICATED_ANONYMOUSLY" /> <!--需要权限--> <intercept-url pattern="/user/**" access="ROLE_USER" /> <intercept-url pattern="/eman/**" access="ROLE_EMAN" /> <intercept-url pattern="/admin/**" access="ROLE_ADMIN" /> <intercept-url pattern="/**" access="ROLE_AUTH" /> <!--登录界面--> <form-login login-page='/login.jsp' /> </http> <authentication-manager> <!--假设用户--> <authentication-provider> <user-service> <user name="user1" password="111111" authorities="ROLE_AUTH,ROLE_USER" /> <user name="eman1" password="111111" authorities="ROLE_AUTH,ROLE_EMAN" /> <user name="admin" password="111111" authorities="ROLE_AUTH,ROLE_ADMIN" /> </user-service> </authentication-provider> </authentication-manager> </b:beans>
- ss3.war (4.4 MB)
- 下载次数: 22
- SS3介绍.ppt.rar (1.2 MB)
- 下载次数: 11
发表评论
-
集成Hibernate Search做全文检索
2014-05-03 15:42 527集成Hibernate Search做全文检索 原文来自 h ... -
Base64扩展,自定义字串和顺序
2012-12-06 11:10 1669Base64很标准,sun 的 jdk 包含了实现,JS ... -
避免跨域问题 ajax proxy
2012-12-04 09:31 789前端全是 AJAX 框架,其中用到一些动态 API 调用,动静 ... -
Arc-03-32 用户事件跟踪
2012-07-05 15:25 717参照 clickstream 项目,保存到数据库 1.实现原 ... -
CXF 结合jaxb返回json字符串时,当属性为数值型字符串时,没有双引号问题
2012-06-04 14:00 2082问题:CXF 结合jaxb返回json字符串时,当属性为数值型 ... -
Arc-03-30-Postgresql 数据导出到Sqlite
2012-05-15 09:39 0用了空间数据库 PostGis,所以用了 Postgresql ... -
extjs4 有用的资源链接
2012-05-12 01:07 626对 Ext 扩展的一些小总结 http://laodaoba ... -
Arc-03-29 CXF 实现 REST 方式上传文件
2012-04-09 00:46 3058CXF 实现 REST 方式上传文件 /** ... -
Arch-03-28 Jndi 配置 Mongodb jetty 实现
2012-03-06 15:20 1614使用 springdata mongodb,直接使用 spri ... -
Arc-03-27-FTP 服务和客户端小结
2012-01-29 18:08 743尽管局域网中传输文件有 n 多方法,samba,webdav, ... -
Arc-03-26-相册图片短码编码实现
2011-12-29 17:01 900应用中需要上传用户图片,不想数据库单独维护图片的信息,想直接从 ... -
Arch-03-25-JAVA异常列表
2011-12-20 09:37 903ClassCastException 类型转换异常类 ... -
Arch-03-23- ActiveMQ 实践
2011-10-28 15:03 817ActiveMQ 到了非用不可的地步了,学习一下吧。主要用途定 ... -
Arch-03-22- 编程实现多数据源,水平切分,异种数据源
2011-10-20 17:35 808在 Spring 的框架下,通过编程实现多数据源(JDBC), ... -
Arch-03-21- Spring 中调用 Guice 中的注入
2011-10-06 20:27 870当 spring 和 guice 共同存在一个项目中,且 sp ... -
Arch-03-20- Shindig 实践
2011-10-06 16:53 772之前已经抄录了几篇网文,初步了解 shindig 功能与特性, ... -
Arch-03-19- NoSQL实践
2011-09-26 10:27 1327虽然对新技术甚为谨慎,但目前大家所做的伪 sns 的 nosq ... -
Arch-03-18- 用 Mysql-proxy 搭建 MySQL 集群
2011-09-20 10:21 872对应上篇 pgpool2 搭建 postgresql 集群,因 ... -
Arch-03-17- 用 pgpool-II 搭建 PostgreSQL 集群
2011-09-19 10:00 3007(一)方案 尽管做数据库 postgresql 集群的方式 ... -
Arch-03-16- RIA 最佳实践摸索
2011-09-18 11:53 1223RIA 是必须的了,实现 RIA 的路径也特别的多,摸索正确的 ...
相关推荐
Arch-Linux-Install-ScriptArch_Linux_安装脚本_Arch-Linux-Installer
Next Generation On Demand (NGOD) Asset Architecture Comcast-SP-NGOD-ASSET-ARCH-I03-100731 Issued July 31, 2010
"cacti-plugin-arch-2.0.tar.gz" 是一个针对Cacti的插件包,用于扩展Cacti的功能,提供更丰富的监控选项。此插件名为“Arch”,可能是对系统架构或性能分析相关的增强。 该压缩包文件的名称表明它是版本2.0,通常这...
标题“Arch-03-08-热敏打印机集成方法”指的是关于在计算机系统或应用程序中集成热敏打印机的技术过程。热敏打印机是一种利用热敏纸进行打印的设备,广泛应用于零售、餐饮和其他需要快速、小票打印的场景。集成热敏...
变系数ARCH-M模型是时间序列分析领域的重要研究对象,其核心在于通过截面似然估计来检验模型是否具有条件异方差性(ARCH效应)。首先,我们来探讨一下条件异方差性的概念,它是指在时间序列分析中,随机变量的条件...
基于android8.1源码平台中生成的jar,亲测可用!!!!
标题“Arch-03-15- Nginx+tomcat 配置负载均衡动静分离”涉及的是在Web服务器架构中使用Nginx与Tomcat的集成,通过配置实现负载均衡和动静态资源分离。这样的架构可以提高系统的可用性和响应速度,减轻后端应用...
OpenRISC是一种开源的指令集架构(ISA),它致力于提供一个简单、易于实现和使用的处理器核心,适用于广泛的嵌入式系统和应用程序。该文档是关于OpenRISC1000架构的手册,版本号为1.0,修订号为0,发布日期为2012年...
UPnP(通用即插即用)技术是一种允许设备在家庭或...总而言之,通过《UPnP™ Device Architecture 1.1》文档,我们可以系统地掌握UPnP技术的基础知识和架构原理,并进一步探索如何在各种网络设备中实现和应用UPnP技术。
标题中的"Python库 | arch-4.11-cp35-cp35m-win32.whl"指的是一个特定版本的Python库,名为“arch”,版本为4.11,适用于Python 3.5解释器(由"cp35"标识),且是针对32位Windows操作系统("win32")的。"cp35m"表示...
Next Generation On Demand (NGOD) Overall Architecture Comcast-SP-NGOD-GEN-ARCH-I03-100731 Issued July 31, 2010
python库。 资源全名:arch-4.8.0-cp27-cp27m-win32.whl
安装克隆这个仓库git clone https://github.com/jannispinter/arch-openwrt-buildroot.git构建 docker 镜像 cd arch-openwrt-buildrootdocker build -t= " arch-openwrt-buildroot:trunk " . 最后的点表示Dockerfile...
资源来自pypi官网。 资源全名:arch-4.17-cp39-cp39-manylinux1_x86_64.whl
我的Arch_Linux安装步骤和日志_Arch-Linux-install-log
资源来自pypi官网。 资源全名:arch-4.9.1-cp36-cp36m-macosx_10_6_intel.whl
arch-model-estimation_solution.ipynb
arch-snds100驱动程序是专为s3c44b0x处理器设计的一款核心驱动,用于管理和优化硬件资源的使用。s3c44b0x是一款由Samsung生产的微处理器,常用于嵌入式系统,如工业控制、移动设备和消费电子产品等。驱动程序在操作...
UPnP协议的设备架构版本2.0(UPnP-arch-DeviceArchitecture-v2.0)详细介绍了UPnP协议的开发流程,这其中包括寻址、发现、描述、控制、事件、展现等6个过程的具体实现。对于开发者而言,这是理解和应用UPnP协议的...