• 7. Sample Applications示例应用程序


    该项目提供了几个示例web应用程序。为了避免下载量过大,分发zip文件中仅包含“教程”和“联系人”示例。其他的可以直接从你可以获得的资源中构建,如介绍中所述。这个项目很容易自己构建,在https://spring.io/spring-security/.的项目网站上有更多的信息。本章中提到的所有路径都是相对于项目源目录的。

    7.1 Tutorial Sample  Tutorial 示例

    本教程样本是一个让你入门的很好的基础的例子。它完全使用而来简单命名空间配置。编译好的应用程序包含在分发的zip包中。随时可以部署到你的Web容器(spring-security-samples-tutorial-3.1.x.war)。 form-based的认证机制结合remember-me 功能,验证供应商提供使用cookie自动基础登录。

    我们建议你从本示例开始,因为XML非常小,易于遵循。最重要的是,你可以把这个XML文件(和它对应的web.xml入口)轻松地添加到现有的应用程序中。在这个基本集成成功的时候,我们建议你试着添加方法验证和领域对象安全。

    7.2 Contacts  Contacts 示例

    该示例是一个高级的例子,它展示除了基本的应用程序安全领域对象的访问控制列表(ACL)的更强大的功能。本申请提供了一个接口让用户能够管理简单的联系人数据库(域对象)。

    拷贝WAR文件从Spring Security 分发包到你自己的容器的webapps 目录来部署它。war名字是spring-security-samples-contacts-3.1.x.war(扩展的版本号取决于你的版本号)。

    开始你的容器后检查应用程序是否可用载入,访问 http://localhost:8080/contacts (或者其他适合你的容器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文件。

    7.3 LDAP Sample LDAP示例

    LDAP示例应用程序提供了一个基本配置,并使用传统beans在同一个应用程序上下文文件中设置了名称空间配置和等效配置。这意味着该应用程序中实际上配置了两个相同的身份验证提供程序。

    7.4 OpenID Sample  OpenID示例

    OpenID示例演示了如何使用命名空间来配置OpenID,以及如何为谷歌、雅虎和MyOpenID身份提供者设置属性交换( attribute exchange)配置(如果您愿意,您可以尝试添加其他身份提供者)。它使用基于JQuery的openid选择器( openid-selector )项目来提供一个用户友好的登录页面,允许用户轻松地选择提供者,而不是键入完整的OpenID标识符。

    该应用程序不同于普通的身份验证场景,它允许任何用户访问该站点(前提是他们的OpenID身份验证成功)。首次登录时,您将收到一条“欢迎[您的姓名]”消息。如果您注销并重新登录(使用相同的OpenID身份),那么这应该更改为“欢迎回来”。这是通过使用自定义的UserDetailsService(用户详细信息服务)来实现的,该服务为任何用户分配一个标准角色,并将身份存储在内部的一个映射中。显然,真正的应用程序会使用数据库来代替。请看来源表单了解更多信息。该类还考虑了不同的属性可能从不同的提供者返回的事实,并相应地构建了它用来寻址用户的名称。显然,一个真正的应用程序将使用一个数据库替换它。看一看源代码了解更多信息,此类还考虑到,不同供应商返回不同属性,并建立相应用户名。

    7.5 CAS Sample CAS示例

    CAS示例要求您同时运行CAS服务器和CAS客户端。它没有包含在发行版中,所以您应该按照介绍中的描述查看项目代码。您可以在sample/cas目录下找到相关文件。这里还有一个Readme.txt文件,解释了如何直接从源代码运行服务器和客户端,并提供了SSL支持。

    7.6 JAAS Sample  JAAS示例

    JAAS的例子是一个非常简单的例子,说明了如何在Spring Security中使用JAAS逻辑模块。如果用户名等于密码,提供的逻辑模块将成功验证用户,否则将引发逻辑异常。本例中使用的授权转换器总是授予角色ROLE_USER。该示例应用程序还演示了如何通过将jaas-api-provision设置为“true”来作为逻辑模块返回的JAAS主题运行。

    7.7 Pre-Authentication Sample Pre-Authentication 示例

    这个示例应用程序演示了如何从预认证框架连接beans,以利用来自Java EE容器的登录信息。用户名和角色是由容器设置的。

    代码是samples/preauth.

  • 相关阅读:
    12、【常见算法】跳台阶问题
    11、【常见算法】编写CString类
    10、【常见算法】单链表逆置输出
    9、【常见算法】数组重排
    8、【常见算法】查找数组中重复元素
    7、【常见算法】数组元素查找
    6、【常见算法】整数拆分
    5、【常见算法】从长度为n的数组(元素互不相同)中任意选择m个数的所有组合。
    vi 常用命令
    Nutz框架的优点
  • 原文地址:https://www.cnblogs.com/jrkl/p/13513088.html
Copyright © 2020-2023  润新知