miniweb采用的是spring security作为权限管理,我一直想搞一个flex界面。仿照igenko和puremvc的demo,搞了一个。
首先是修改一下服务端,主要是增加上对于graniteds的支持!
1.在pom.xml中加入依赖包
2.在web.xml中声明一下
3.写一个鸡肋一般的登陆类,作为service而存在
ok,这就是服务端的修改了。
提供代码:
源码下载
首先是修改一下服务端,主要是增加上对于graniteds的支持!
1.在pom.xml中加入依赖包
<!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> -->
<!--
utilsend
-->
<!-- graniteds -->
< dependency >
< groupId > org.graniteds </ groupId >
< artifactId > graniteds-core </ artifactId >
< version > 1.1.0-RC2 </ version >
</ dependency >
< dependency >
< groupId > org.graniteds </ groupId >
< artifactId > graniteds-spring </ artifactId >
< version > 1.1.0-RC2 </ version >
</ dependency >
<!-- granitedsend -->
<!-- testingbegin -->
<!-- graniteds -->
< dependency >
< groupId > org.graniteds </ groupId >
< artifactId > graniteds-core </ artifactId >
< version > 1.1.0-RC2 </ version >
</ dependency >
< dependency >
< groupId > org.graniteds </ groupId >
< artifactId > graniteds-spring </ artifactId >
< version > 1.1.0-RC2 </ version >
</ dependency >
<!-- granitedsend -->
<!-- testingbegin -->
2.在web.xml中声明一下
<!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> -->
<
filter
>
< filter-name > AMFMessageFilter </ filter-name >
< filter-class > org.granite.messaging.webapp.AMFMessageFilter
</ filter-class >
</ filter >
< filter-mapping >
< filter-name > AMFMessageFilter </ filter-name >
< url-pattern > /graniteamf/* </ url-pattern >
</ filter-mapping >
< servlet >
< servlet-name > AMFMessageServlet </ servlet-name >
< servlet-class > org.granite.messaging.webapp.AMFMessageServlet
</ servlet-class >
< load-on-startup > 1 </ load-on-startup >
</ servlet >
< servlet-mapping >
< servlet-name > AMFMessageServlet </ servlet-name >
< url-pattern > /graniteamf/* </ url-pattern >
</ servlet-mapping >
< filter-name > AMFMessageFilter </ filter-name >
< filter-class > org.granite.messaging.webapp.AMFMessageFilter
</ filter-class >
</ filter >
< filter-mapping >
< filter-name > AMFMessageFilter </ filter-name >
< url-pattern > /graniteamf/* </ url-pattern >
</ filter-mapping >
< servlet >
< servlet-name > AMFMessageServlet </ servlet-name >
< servlet-class > org.granite.messaging.webapp.AMFMessageServlet
</ servlet-class >
< load-on-startup > 1 </ load-on-startup >
</ servlet >
< servlet-mapping >
< servlet-name > AMFMessageServlet </ servlet-name >
< url-pattern > /graniteamf/* </ url-pattern >
</ servlet-mapping >
3.写一个鸡肋一般的登陆类,作为service而存在
<!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> -->
package
org.springside.examples.miniweb.service;
import javax.annotation.security.RolesAllowed;
import org.springframework.stereotype.Repository;
@Repository( " loginService " )
public class LoginServiceImpl{
/**
*ThismethodisusedtocheckadminrolewithAcegi
*
* @return returnalwaystruebecausesecuritycheckisdonebyAcegi
*/
@RolesAllowed( " ROLE_LOGIN_BACKOFFICE " )
@SuppressWarnings( " unchecked " )
public boolean checkLogin(){
return true ;
}
}
import javax.annotation.security.RolesAllowed;
import org.springframework.stereotype.Repository;
@Repository( " loginService " )
public class LoginServiceImpl{
/**
*ThismethodisusedtocheckadminrolewithAcegi
*
* @return returnalwaystruebecausesecuritycheckisdonebyAcegi
*/
@RolesAllowed( " ROLE_LOGIN_BACKOFFICE " )
@SuppressWarnings( " unchecked " )
public boolean checkLogin(){
return true ;
}
}
4.增加如下两个文件

关键部分的内容如下:
<
destinationid
=
"
login
"
>
< channels >
< channelref = " my-graniteamf " />
</ channels >
< properties >
< factory > springFactory </ factory >
< source > loginService </ source >
</ properties >
< security >
< security - constraint >
< auth - method > Custom </ auth - method >
< roles >
< role > ROLE_LOGIN_BACKOFFICE </ role >
</ roles >
</ security - constraint >
</ security >
</ destination >
< channels >
< channelref = " my-graniteamf " />
</ channels >
< properties >
< factory > springFactory </ factory >
< source > loginService </ source >
</ properties >
< security >
< security - constraint >
< auth - method > Custom </ auth - method >
< roles >
< role > ROLE_LOGIN_BACKOFFICE </ role >
</ roles >
</ security - constraint >
</ security >
</ destination >
ok,这就是服务端的修改了。
提供代码:
源码下载
本文介绍如何在miniweb项目中集成Flex界面,并通过GraniteDS实现与Spring Security的安全交互。主要内容包括添加GraniteDS依赖、配置web.xml、创建登录服务及定义安全约束。
131

被折叠的 条评论
为什么被折叠?



