项目中包含了很多web实例程序。 为了不让下载包变得太大,我们只把"tutorial"和"contacts"两个例子放到了zip发布包里。 你可以自己编译部署它们,也可以从Maven中央资源库里获得单独的war文件。 我们建议你使用前一种方法。 你可以按照简介里的介绍获得源代码,使用maven编译它们也很简单。 如果你需要的话,可以在 http://www.springsource.org/security/ 网站上找到更多信息。
这个tutorial示例是带你入门的很好的一个基础例子。
它完全使用了简单命名空间配置。
编译好的应用就放在zip发布包中,已经准备好发布到你的web容器中(spring-security-samples-tutorial-2.0.x.war
)。
使用了form-based验证机制,与常用的remember-me验证提供器相结合,自动使用cookie记录登录信息。
我们推荐你从tutorial例子开始,因为XML非常小,也很容易看懂。
更重要的是,你很容易就可以把这个XML文件(和它对应的web.xml
入口)添加到你的程序中。
只有做基本集成成功的时候,我们建议你试着添加方法验证和领域对象安全。
Contacts例子,是一个很高级的例子,它在基本程序安全上附加了领域对象的访问控制列表,演示了更多强大的功能。
要发布它,先把Spring Security发布中的war文件按复制到你的容器的webapps
目录下。
这个war文件应该叫做spring-security-samples-contacts-2.0.0.war
(后边的版本号,很大程度上依赖于你使用的发布版本)。
在启动你的容器之后,检测一下程序是不是加载了,访问http://localhost:8080/contacts
(或是其他你把war发布后,对应于你web容器的URL)。
下一步,点击"Debug"。 你将看到需要登录的提示,这页上会有一些测试用的用户名和密码。 随便使用其中的一个通过认证,就会看到结果页面。 它应该会包含下面这样的一段成功信息:
Security Debug Information
Authentication object is of type:
org.springframework.security.authentication.UsernamePasswordAuthenticationToken
Authentication object as a String:
org.springframework.security.authentication.UsernamePasswordAuthenticationToken@1f127853:
Principal: org.springframework.security.core.userdetails.User@b07ed00: Username: rod; \
Password: [PROTECTED]; Enabled: true; AccountNonExpired: true;
credentialsNonExpired: true; AccountNonLocked: true; \
Granted Authorities: ROLE_SUPERVISOR, ROLE_USER; \
Password: [PROTECTED]; Authenticated: true; \
Details: org.springframework.security.web.authentication.WebAuthenticationDetails@0: \
RemoteIpAddress: 127.0.0.1; SessionId: 8fkp8t83ohar; \
Granted Authorities: ROLE_SUPERVISOR, ROLE_USER
Authentication object holds the following granted authorities:
ROLE_SUPERVISOR (getAuthority(): ROLE_SUPERVISOR)
ROLE_USER (getAuthority(): ROLE_USER)
Success! Your web filters appear to be properly configured!
一旦你成功的看到了上面的信息,就可以返回例子程序的主页,点击"Manage"了。
然后你就可以尝试这个程序了。
注意,只有当前登录的用户对应的联系信息会显示出来,而且只有ROLE_SUPERVISOR
权限的用户可以授权删除他们的联系信息。
在这场景后面,MethodSecurityInterceptor
保护着业务对象。
陈程序允许你修改访问控制列表,分配不同的联系方式。 确保自己好好试用过,看看程序里的上下文XML文件,搞明白它是如何运行的。
LDAP例子程序提供了一个基础配置,同时使用命名空间配置和使用传统方式bean的配置方式,这两种配置方式都写在application context文件里。 这意味着,在这个程序里,其实是配置了两个定义验证提供器。
CAS示例要求你同时运行CAS服务器和CAS客户端。
它没有包含在发布包里,你应该使用简介中的介绍来获得源代码。
你可以在sample/cas
目录下找到对应的文件。
这里还有一个Readme.txt
文件,解释如何从源代码树中直接运行服务器和客户端,提供完全的SSL支持。
你应该下载CAS服务器web程序(一个war文件)从CAS网站,把它放到samples/cas/server
目录下。
这个例子演示了如何从pre-authentication框架绑定bean,从J2EE容器中获得有用的登录信息。 用户名和角色是由容器设置的。
代码在samples/preauth
目录下。