在Spring MVC+BlazeDS+Flex框架实践:Database篇的基础上,这次要加入的是Spring Security的配置与应用。至于Spring Security的原理及配置详解网上已经有很多可参考的文章,在这里就不再重复了。
一、Spring Security配置
1)添加Application-Security.xml
在JAVA工程src下创建Application-Security.xml
2)修改web.xml
在添加Application-Security.xml后,需要在web.xml中将其添加到初始化加载列表中
修改web.xml以下配置:
二、Security类创建
在JAVA工程src下创建package com.common.security
创建SecurityLogListener.java
创建SecurityLogoutHandler.java
创建FlexUserDetails.java
此类中的信息与数据库的结构有关
创建FlexUserDetailsService.java
此类中具体执行了用户登录时的授权等操作,其中明确了当用户为"admin"时,为其授予ROLE_ADMIN、ROLE_USER、ROLE_ANONYMOUS权限;而其他用户则只有ROLE_USER、ROLE_ANONYMOUS权限。不同权限的访问范围在Application-Security.xml中进行控制。本例中只有ROLE_ADMIN权限的角色才能访问modules/admin下的页面。
创建AuthenticationHelper.java
此类在用户登录时被调用
三、配置AuthenticationHelper
1)发布AuthenticationHelper
在Application-Flex.xml中添加如下配置:
2)创建CommonModule.mxml
在FLEX工程modules/common目录下创建CommonModule.mxml,用以实现Security验证
3)引用authenticationHelper
在FLEX工程remoting-config.xml中添加如下配置:
3)修改Index.mxml
在Index.mxml中调用authenticationHelper,修改后的Index.mxml内容如下:
四、编译运行
1)编译FLEX工程
选择Project—>Clean—>TestProject
2)拷贝FLEX编译目录bin-debug/modules到JAVA工程WebRoot下
3)启动本地数据库
4)启动服务器
5)服务器正常启动后,在浏览器内输入(其中9090为服务器端口号)
http://localhost:9090/TestProject/modules/common/Index.html
运行结果:
以Sky用户登录
登录首页
查看modules/admin/UserModule.swf,由于权限控制将无法访问
查看modules/common/CommonModule.swf
以admin用户登录
查看modules/admin/UserModule/swf,由于已经为该用户授予了权限,因此可以访问
查看modules/common/CommonModule.swf
到此Spring MVC+BlzeDS+Flex框架的搭建三个过程都已经结束,如果今后还有新的内容我会及时和大家分享。