java - 简单的 Spring MVC+安全设置

标签 java spring spring-mvc spring-security

我正在尝试设置一个简单的 spring mvc/spring security webapp,但我似乎找不到完成此操作的方法:

  1. 我想使用普通的 @Secured 注释,如果用户未登录,我希望他们被重定向到登录页面,然后返回到原来的位置(这是我认为的正常行为)已经成功完成)
  2. 我希望登录表单成为我自己的 Controller /模板对(也很常见且已完成)。
  3. 我希望将上面的登录表单提交到我自己的 Controller ,该 Controller 将根据我的后端 Restful 服务对用户凭据进行身份验证。然后它接收从服务返回的安全 token 。此时,我想手动将 session 标记为已通过身份验证,并将 token 附加到其上。

我该如何实现最后阶段?

最佳答案

我不确定我是否完全理解你的问题,但如果我理解正确,你也许可以扩展 AbstractPreAuthenticatedProcessingFilter 并覆盖 getPreAuthenticatedPrincipal 和 getPreAuthenticatedCredentials 并调用你的 Restful 服务/ Controller 等。覆盖 AuthenticationUserDetailsS​​ervice 并提供一个简单的服务,并添加您的安全上下文,如下所示:

<beans:bean id="preauthAuthProvider"
            class="org.springframework.security.web.authentication.preauth.PreAuthenticatedAuthenticationProvider">
    <beans:property name="preAuthenticatedUserDetailsService">
        <beans:bean class="com.YourCompany.YourPreAuthenticatedGrantedAuthoritiesUserDetailsService"></beans:bean>
    </beans:property>
    <beans:property name="order" value="1"/>
</beans:bean>


<authentication-manager alias="authenticationManager" >
    <authentication-provider ref="preauthAuthProvider" ></authentication-provider>
</authentication-manager>

关于java - 简单的 Spring MVC+安全设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10273932/

相关文章:

java - Spring @Async 是否适用于客户端-服务器通信?

java - 下载多个文件 Java Spring

java - 我们应该如何在 Java 网络服务器环境中集成 PayPal 自适应(和 IPN)API?

spring - 异步 REST API 生成警告

java - 设计问题 - 带有枚举实现接口(interface)的模板模式

java - 如何从 String Java 生成 PublicKey

Java二维数组取值和for循环问题

java - 什么样的全局变量是java中的坏习惯?

java - 检查字符串是否包含数值和字母值

java - 每次启动应用程序时,Spring data.sql 文件都会添加一条新记录。