Spring security 如何使用自定义JAAS堆栈配置spring安全性?

Spring security 如何使用自定义JAAS堆栈配置spring安全性?,spring-security,jaas,Spring Security,Jaas,为了向我的spring mvcbasedweb应用程序添加基本的spring安全性,我遵循了以下步骤 在添加spring安全层之前,我的应用程序使用my web.xml中配置的acustom SSO登录模块进行了保护: <login-config> <auth-method>MyLoginModule</auth-method> </login-config> MyLoginModule 这个登录模块不需要重定向到登

为了向我的spring mvcbasedweb应用程序添加基本的spring安全性,我遵循了以下步骤

在添加spring安全层之前,我的应用程序使用my web.xml中配置的acustom SSO登录模块进行了保护:

 <login-config>
        <auth-method>MyLoginModule</auth-method>
    </login-config>

MyLoginModule
这个登录模块不需要重定向到登录表单,执行登录等操作,并且按预期工作。 添加基本的spring安全层后,应用程序将重定向到我的自定义登录页面,当我进行身份验证时,使用spring的标准“使用用户名和密码登录”表单让我通过另一个身份验证


我的问题是如何将spring配置为仅使用上面的登录配置来执行身份验证并删除其冗余的“内置”表单?

很抱歉,我以前没有理解您的场景。检查以执行身份验证。您应该将用户注册到SecurityContextHolder中

此外,还可以访问

以下示例适用于典型的表单web身份验证(请确保使用spring j_用户名/密码进行标识):


... 
用户名
密码
...
...

您必须在spring安全文件中定义此安全检查:

    <security:form-login login-page="/login"
        default-target-url="/welcome" 
        login-processing-url="/my_security_check" />
    <security:logout logout-url="/my_security_logout"
        logout-success-url="/login" />
 </security:http>

在我使用Tiles的情况下,我还必须将其添加到我的mvc配置文件中:

<mvc:view-controller path="/login" view-name="login" />


示例和源代码:mkyong.com/spring-security/spring-security-form-login-Example/

我在spring-security参考中找到了我想要的东西。具体来说,.

这一章是为了告诉它我的登录页面在哪里,我希望它使用我的LoginModule,这反过来会将用户重定向到登录页面。只需在spring security中定义您想要的页面的默认目标url即可。我将答案编辑得更简洁。同样,我无法设置登录页面,我的jass堆栈中配置了一个登录模块来处理它,我希望spring security调用/使用它来执行登录如果您不使用spring进行登录,请尝试获取自动认证用户,或使用spring进行设置。SecurityContextHolder.getContext().getAuthentication();您是否阅读了参考手册中有关JAAS的信息,查看了JAAS示例等?另外,在你的问题标题中提到JAAS也是有意义的,因为术语“登录模块”本身非常模糊,很多人不会意识到你指的是特定的技术。谢谢你对问题标签的评论。我不太明白你的问题。我的JAAS堆栈本身工作正常,我的spring安全设置本身工作正常,我似乎无法让spring security启动MyLoginModule来进行身份验证。此url将始终指向spring security的当前版本:
<mvc:view-controller path="/login" view-name="login" />