- 浏览: 245999 次
- 性别:
- 来自: 成都
文章分类
- 全部博客 (144)
- J2EE (19)
- 数据库 (9)
- 操作系统 (8)
- 编程综合 (3)
- 软件工程 (2)
- 互联网 (12)
- 云计算 (16)
- C++编程 (1)
- Python (8)
- Ruby (23)
- iPhone (14)
- Android (3)
- Symbian (1)
- 手机开发 (3)
- 版本管理 (2)
- Linux (10)
- Lighttpd (3)
- 应用服务器 (5)
- HTML5 (2)
- VMware (1)
- PHP (11)
- Apache (0)
- Nginx (0)
- ASP.NET (1)
- ASP (2)
- Javascript (2)
- Flex (1)
- 无线组网 (1)
- CSS (1)
最新评论
-
kpcbk:
你好,这个破解版好像数据超过25条就显示不出来了,是不是破解有 ...
Flex中使用fusioncharts破解版配置 -
zay1007:
as 文件有错啊
Flex中使用fusioncharts破解版配置 -
aruis:
很不错,今天正好用到了。氧吧那里下载的as文件报错。你这里的就 ...
Flex中使用fusioncharts破解版配置 -
李晓进:
安装后之后点了扫描之后解码不出信息来呀????????O(∩_ ...
条码扫描二维码扫描——ZXing android 源码简化 -
kittychina:
很好,继续!
PHP开源CMS-Drupal做视频站点(第1版)
Acegi 对于密码提供三种方式:明文及不采用任何加密方式、MD5加密方式、哈希算法加密方式。
只需要在DAO的认证管理器中分别加入一下对应一下配置:
第一种:不使用任何加密方式的配置
Java代码
<bean id="daoAuthenticationProvider" class="org.acegisecurity.providers.dao.DaoAuthenticationProvider">
<property name="userDetailsService" ref="userDetailsService" />
<!-- 明文加密,不使用任何加密算法, 在不指定该配置的情况下,Acegi默认采用的就是明文加密 -->
<!--
<property name="passwordEncoder">
<bean class="org.acegisecurity.providers.encoding.PlaintextPasswordEncoder">
<property name="ignorePasswordCase" value="true"/>
</bean>
</property>
-->
</bean>
第二种:MD5方式加密
Java代码
<bean id="daoAuthenticationProvider" class="org.acegisecurity.providers.dao.DaoAuthenticationProvider">
<property name="userDetailsService" ref="userDetailsService" />
<property name="passwordEncoder">
<bean class="org.acegisecurity.providers.encoding.Md5PasswordEncoder">
<!-- false 表示:生成32位的Hex版, 这也是encodeHashAsBase64的,
Acegi 默认配置; true 表示:生成24位的Base64版 -->
<property name="encodeHashAsBase64" value="false" />
</bean>
</property>
</bean>
第三种:使用MD5加密,并添加全局加密盐
Java代码
<bean id="daoAuthenticationProvider" class="org.acegisecurity.providers.dao.DaoAuthenticationProvider">
<property name="userDetailsService" ref="userDetailsService" />
<property name="passwordEncoder">
<bean class="org.acegisecurity.providers.encoding.Md5PasswordEncoder">
<property name="encodeHashAsBase64" value="false" />
</bean>
</property>
<!-- 对密码加密算法中使用特定的加密盐及种子 -->
<property name="saltSource">
<bean class="org.acegisecurity.providers.dao.salt.SystemWideSaltSource">
<property name="systemWideSalt" value="acegisalt" />
</bean>
</property>
</bean>
第四种:使用MD5加密,并添加动态加密盐
Java代码
<bean id="daoAuthenticationProvider" class="org.acegisecurity.providers.dao.DaoAuthenticationProvider">
<property name="userDetailsService" ref="userDetailsService" />
<property name="passwordEncoder">
<bean class="org.acegisecurity.providers.encoding.Md5PasswordEncoder">
<property name="encodeHashAsBase64" value="false" />
</bean>
</property>
<!-- 对密码加密算法中使用特定的加密盐及种子 -->
<property name="saltSource">
<!-- 通过动态的加密盐进行加密,该配置通过用户名提供加密盐, 通过UserDetails的getUsername()方式 -->
<bean class="org.acegisecurity.providers.dao.salt.ReflectionSaltSource">
<property name="userPropertyToUse" value="getUsername" />
</bean>
</property>
</bean>
第五种:使用哈希算法加密,加密强度为256
Java代码
<bean id="daoAuthenticationProvider" class="org.acegisecurity.providers.dao.DaoAuthenticationProvider">
<property name="userDetailsService" ref="userDetailsService" />
<property name="passwordEncoder">
<bean class="org.acegisecurity.providers.encoding.ShaPasswordEncoder">
<constructor-arg value="256" />
<property name="encodeHashAsBase64" value="false" />
</bean>
</property>
</bean>
第六种:使用哈希算法加密,加密强度为SHA-256
Java代码
<bean id="daoAuthenticationProvider" class="org.acegisecurity.providers.dao.DaoAuthenticationProvider">
<property name="userDetailsService" ref="userDetailsService" />
<property name="passwordEncoder">
<bean class="org.acegisecurity.providers.encoding.ShaPasswordEncoder">
<constructor-arg value="SHA-256" />
<property name="encodeHashAsBase64" value="false" />
</bean>
</property>
</bean>
上述配置只是在Acegi通过表单提交的用户认证信息中的密码做各种加密操作。而我们存储用户密码的时候,可以通过一下程序完成用户密码操作:
Java代码
package org.lee.authentication.acegi;
import org.acegisecurity.providers.encoding.Md5PasswordEncoder;
import org.acegisecurity.providers.encoding.ShaPasswordEncoder;
public class TestPasswordEncoder {
public static void main(String[] args) throws Exception {
md5(); // 使用简单的MD5加密方式
sha_256(); // 使用256的哈希算法(SHA)加密
sha_SHA_256(); // 使用SHA-256的哈希算法(SHA)加密
md5_SystemWideSaltSource(); // 使用MD5再加全局加密盐加密的方式加密
}
public static void md5() {
Md5PasswordEncoder md5 = new Md5PasswordEncoder();
// false 表示:生成32位的Hex版, 这也是encodeHashAsBase64的, Acegi 默认配置; true 表示:生成24位的Base64版
md5.setEncodeHashAsBase64(false);
String pwd = md5.encodePassword("123", null);
System.out.println("MD5: " + pwd + " len=" + pwd.length());
}
public static void sha_256() {
ShaPasswordEncoder sha = new ShaPasswordEncoder(256);
sha.setEncodeHashAsBase64(false);
String pwd = sha.encodePassword("123456", null);
System.out.println("哈希算法 256: " + pwd + " len=" + pwd.length());
}
public static void sha_SHA_256() {
ShaPasswordEncoder sha = new ShaPasswordEncoder();
sha.setEncodeHashAsBase64(false);
String pwd = sha.encodePassword("123456", null);
System.out.println("哈希算法 SHA-256: " + pwd + " len=" + pwd.length());
}
public static void md5_SystemWideSaltSource () {
Md5PasswordEncoder md5 = new Md5PasswordEncoder();
md5.setEncodeHashAsBase64(false);
// 使用动态加密盐的只需要在注册用户的时候将第二个参数换成用户名即可
String pwd = md5.encodePassword("123456", "acegisalt");
System.out.println("MD5 SystemWideSaltSource: " + pwd + " len=" + pwd.length());
}
}
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/wyit007/archive/2010/10/16/5945655.aspx
发表评论
-
Glassfish 安装为windows 系统服务
2011-08-18 09:48 1324(文档来源官方) http://wiki.glassfi ... -
Collections.sort list排序
2011-07-23 13:40 1090newList是个Value对象的List,orderId是V ... -
glassfish下的性能调优:令人极度困惑的Max Connections参数
2011-07-13 17:49 2099近日做性能调优,主要 ... -
(转)Acegi 各种加密方式详解
2011-06-28 10:51 846Acegi 对于密码提供三种方式:明文及不采用任何加密 ... -
Glassfish-v2和apache2.2.6的整合
2011-06-17 17:41 9271.下载mod_jk-1.2.26-httpd-2.2.4.s ... -
在Eclipse下调试GlassFish程序
2011-06-17 17:29 9271. 启动GlassFIsh domain(\bin\as ... -
用 GlassFish v2 替换 Tomcat 5.x
2011-06-17 17:05 8801. 背景用了很多年的Tomc ... -
Windows下全新安装Glassfish服务器
2011-06-17 17:03 972一、了解并下载Glassfish服务器Glassfish主页: ... -
主题:jquery1.4+SWFUpload2.2+COS的jquery上传插件
2011-06-14 16:56 1474一: 引入必须的js文件和css文件: Java ... -
Grails 1.4 M1发布
2011-06-11 18:26 1108Grails 1.4 M1已经发布了,Grails是一套用于快 ... -
(转)详解HermesJMS 连接 ActiveMQ
2011-01-10 17:52 1154ActiveMQ 是一个实现了 JMS 1.1 规范的开源的 ... -
(转)Log4j的AsyncAppender能否提升性能
2010-08-04 18:38 1185近日在写多线程方面的东西,需要对多线程进行日志监控 ... -
Tomcat中的Connector配置
2010-07-20 14:11 3011JBoss使用Tomcat作为Web容器,因此在JBo ... -
Weblogic下SqlServer2008 XA驱动连接配置问题
2010-07-16 12:45 3594这几天在Weblogic下配置Sq ... -
Weblogic下使用Apache插件中转后,远程IP地址不正确解决办法
2010-07-16 11:30 1604我在Weblogic9.20下使用Apache插件后,远程 ... -
TOMCAT线程池的配置(转载)
2010-07-14 23:15 782首先在你的TOMCAT的目录下%TOMCAT_HOME%\co ... -
Tomcat中URL大小写问题
2010-07-14 22:37 3429今天遇到个客户,强力要求我们软件开发人员把Tomcat设置成为 ... -
Weblogic下SqlServer2000 XA驱动连接配置常见问题
2010-07-02 16:51 1099这几天在Weblogic下配置SqlServer2000 XA ...
相关推荐
Acegi文档 spring acegi 详细文档
Spring Acegi权限控制,安全系统就只包括两个问题: 认证和授权.
Spring ACEGI手册(部份) 博文链接:https://allenj2ee.iteye.com/blog/129321
Spring acegi 3 文档 Spring acegi 3 文档Spring acegi 3 文档 Spring acegi 3 文档
spring Acegi例子,很简单的一个acegi实例,容易理解
spring acegi 使用工程demo
Spring源代码解析(十):Spring_Acegi框架授权的实现.doc
前段时间复习了spring怎么做权限的技术,spring acegi 学习心得.记下来勉励自己.
spring_acegi精彩实例,带MYSQL数据库脚本,保证能运行 spring_acegi精彩实例,带MYSQL数据库脚本,保证能运行 spring_acegi精彩实例,带MYSQL数据库脚本,保证能运行 spring_acegi精彩实例,带MYSQL数据库脚本,...
基于spring的Acegi安全框架认证与授权的分析及扩展.pdf
spring+acegi+中文手册spring+acegi+中文手册spring+acegi+中文手册spring+acegi+中文手册spring+acegi+中文手册spring+acegi+中文手册spring+acegi+中文手册spring+acegi+中文手册spring+acegi+中文手册spring+...
它使用了Spring的方式提供了安全和认证安全服务,包括使用Bean Context,拦截器和面向接口的编程方式。因此,Acegi安全系统能够轻松地适用于复杂的安全需求。 安全涉及到两个不同的概念,认证和授权。前者是关于...
Spring ACEGI手册
Acegi学习笔记--Acegi详解Acegi学习笔记--Acegi详解Acegi学习笔记--Acegi详解Acegi学习笔记--Acegi详解Acegi学习笔记--Acegi详解
NULL 博文链接:https://liaomin789.iteye.com/blog/581234
如何定义spring security的安全认证框架,对url和系统类method进行过滤以及权限分配和控制
它使用了Spring的方式提供了安全和认证安全服务,包括使用Bean Context,拦截器和面向接口的编程方式。因此,Acegi安全系统能够轻松地适用于复杂的安全需求。 安全涉及到两个不同的概念,认证和授权。前者是关于...
Acegi Security System for Spring