12 第1页 | 共2 页下一页
返回列表 发新帖
查看: 3535|回复: 12
打印 上一主题 下一主题

spring acegi 官方例子2

[复制链接]

1026

主题

1

听众

6011

积分

高级设计师

Rank: 6Rank: 6

纳金币
5996
精华
1

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

跳转到指定楼层
楼主
发表于 2011-7-29 17:53:51 |只看该作者 |倒序浏览
<!-- Start authentication config -->

<bean id="authenticationManager"

class="org.acegisecurity.providers.ProviderManager">

<property name="providers">

<list>

<ref bean="daoAuthenticationProvider" />

</list>

</property>

</bean>



<bean id="daoAuthenticationProvider"

class="org.acegisecurity.providers.dao.DaoAuthenticationProvider">

<property name="userDetailsService">

<ref bean="userDetailsService" />

</property>

</bean>



<!-- Authentication using In-memory Dao -->



<bean id="userDetailsService"

class="org.acegisecurity.userdetails.memory.InMemoryDaoImpl">

<property name="userMap">

<value>

jklaassen=4moreyears,ROLE_ADMIN

bouerj=ineedsleep,ROLE_USER

</value>

</property>

</bean>

<!-- Authentication using JDBC Dao -->

<!--

<bean id="userDetailsService"

class="org.acegisecurity.userdetails.jdbc.JdbcDaoImpl">

<property name="dataSource">

<ref bean="dataSource"/>

</property>

</bean>

-->

<!-- End authentication config -->



<!-- Start authorization config -->

<bean id="accessDecisionManager"

class="org.acegisecurity.vote.UnanimousBased">

<property name="decisionVoters">

<list>

<ref bean="roleVoter" />

</list>

</property>

</bean>



<bean id="roleVoter" class="org.acegisecurity.vote.RoleVoter">

<property name="rolePrefix">

<value>ROLE_</value>

</property>

</bean>

<!-- End authorization config -->



<!-- ****** END ACEGI Security Configuration *******-->
以上就是所有的源代码配置在spring 的配置文件中。详细的说明在官方的文档上。

在上面的配置文件的方式是以in-memory 的方法,也就是在配置文件中指定登录的用户名及密码。在实际的应用中,应用到数据库或其它技术。


<!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --> <bean id="userDetailsService"

class="org.acegisecurity.userdetails.jdbc.JdbcDaoImpl">

<property name="dataSource">

<ref bean="dataSource"/>

</property>

</bean>

<bean id="dataSource"

class="org.springframework.jdbc.datasource.DriverManagerDataSource">

<property name="driverClassName">

<value>com.mysql.jdbc.Driver</value>

</property>

<property name="url">

<value>jdbc:mysql://localhost:3306/test</value>

</property>

<property name="username">

<value>root</value>

</property>

<property name="password">

<value>1</value>

</property>

</bean>


























以上两个bean的代码就是把信息存储到数据库中。

sql 语句如下:
<!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> -->CREATE TABLE `users` (

`username` varchar(50) NOT NULL,

`password` varchar(50) NOT NULL,

`enabled` varchar(50) NOT NULL,

PRIMARY KEY (`username`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

INSERT INTO `users` VALUES ('dianne','emu','true');

INSERT INTO `users` VALUES ('marissa','koala','true');

INSERT INTO `users` VALUES ('peter','opal','true');

INSERT INTO `users` VALUES ('scott','wombat','true');



CREATE TABLE `authorities` (

`username` varchar(50) NOT NULL,

`authority` varchar(50) NOT NULL,

UNIQUE KEY `ix_auth_username` (`username`,`authority`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

INSERT INTO `authorities` VALUES ('dianne','ROLE_ADMIN');

INSERT INTO `authorities` VALUES ('marissa','ROLE_ADMIN');

INSERT INTO `authorities` VALUES ('marissa','ROLE_USER');

INSERT INTO `authorities` VALUES ('peter','ROLE_USER');

INSERT INTO `authorities` VALUES ('scott','ROLE_ADMIN');

ALTER TABLE `authorities`

ADD FOREIGN KEY (`username`) REFERENCES `users` (`username`);






























所有的配置就是这些:

理解一下原理:

1。acegi的添加,可以在程序写完之后再添加,配置灵活但并不简单。

2.四个步骤:

安全是实施这四项检查:



1 限制出入检查(是以资源担保? ) ;

2 现有的认证检查(有用户被认证? ) ;

3 如果没有有效的登录用户:认证要求退房(都是正确的用户名和密码提供? ) ;

4 授权入住(不含用户拥有所需的角色? ) ;

3.对于授权的处理,未授权的用户无法进行访问。应该设置 403.jsp未授权页面。
分享到: QQ好友和群QQ好友和群 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
转播转播0 分享淘帖0 收藏收藏0 支持支持0 反对反对0
回复

使用道具 举报

797

主题

1

听众

1万

积分

资深设计师

Rank: 7Rank: 7Rank: 7

纳金币
5568
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

沙发
发表于 2011-8-9 15:04:36 |只看该作者
回复

使用道具 举报

1023

主题

3

听众

359

积分

设计实习生

Rank: 2

纳金币
335582
精华
0

最佳新人

板凳
发表于 2012-2-12 23:25:07 |只看该作者
真是不错啊
回复

使用道具 举报

5969

主题

1

听众

39万

积分

首席设计师

Rank: 8Rank: 8

纳金币
-1
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

地板
发表于 2012-3-8 23:26:25 |只看该作者
既来之,则看之!
回复

使用道具 举报

462

主题

1

听众

31万

积分

首席设计师

Rank: 8Rank: 8

纳金币
2
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

5#
发表于 2012-3-9 23:21:28 |只看该作者
爱咋咋地!
回复

使用道具 举报

tc    

5089

主题

1

听众

33万

积分

首席设计师

Rank: 8Rank: 8

纳金币
-1
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

6#
发表于 2012-5-6 23:20:08 |只看该作者
精典,学习了!
回复

使用道具 举报

tc    

5089

主题

1

听众

33万

积分

首席设计师

Rank: 8Rank: 8

纳金币
-1
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

7#
发表于 2012-5-23 23:21:28 |只看该作者
很有心,部分已收录自用,谢谢
回复

使用道具 举报

   

671

主题

1

听众

3247

积分

中级设计师

Rank: 5Rank: 5

纳金币
324742
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

8#
发表于 2012-6-20 23:25:16 |只看该作者
“再次路过……”我造一个-----特别路过
回复

使用道具 举报

   

671

主题

1

听众

3247

积分

中级设计师

Rank: 5Rank: 5

纳金币
324742
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

9#
发表于 2012-7-3 23:21:11 |只看该作者
发了那么多,我都不知道该用哪个给你回帖了,呵呵
回复

使用道具 举报

462

主题

1

听众

31万

积分

首席设计师

Rank: 8Rank: 8

纳金币
2
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

10#
发表于 2012-8-28 00:21:49 |只看该作者
好`我顶``顶顶
回复

使用道具 举报

12 第1页 | 共2 页下一页
返回列表 发新帖
您需要登录后才可以回帖 登录 | 立即注册

手机版|纳金网 ( 闽ICP备2021016425号-2/3

GMT+8, 2025-1-11 19:51 , Processed in 0.066761 second(s), 28 queries .

Powered by Discuz!-创意设计 X2.5

© 2008-2019 Narkii Inc.

回顶部