zoukankan      html  css  js  c++  java
  • 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.

  • 相关阅读:
    BUAA2020软工作业(三)——个人项目
    BUAA2020软工作业(二)——对软件工程的初步理解
    BUAA2020软工作业(一)——谈谈我和计算机的缘分
    OO第四单元总结与课程总结
    OO第三单元总结——JML
    面向对象第二单元总结——魔鬼电梯
    面向对象设计与构造——第一单元总结
    提问回顾与个人总结
    【技术博客】Flutter—使用网络请求的页面搭建流程、State生命周期、一些组件的应用
    软件案例分析
  • 原文地址:https://www.cnblogs.com/jrkl/p/13513088.html
Copyright © 2011-2022 走看看