gpt4 book ai didi

java - 如何将 Spring security 与自定义 java 类/自定义 spring 框架的类一起使用?

转载 作者:行者123 更新时间:2023-12-02 06:11:03 25 4
gpt4 key购买 nike

我的要求如下:

在我们的应用程序中,用户的凭据首次根据数据库进行验证(不使用 Spring Security,因为它是遗留应用程序)。如果用户是有效用户,他将登录到应用程序。一旦用户登录到应用程序,他就可以进行几次休息调用。现在,我想在进行任何其余调用之前使用 Spring Security 再次验证用户的凭据。这里的挑战是我们不应该重新设计数据库模式。我们需要使用一个存储过程来验证用户。如果身份验证失败,此特定存储过程将返回错误消息,否则不返回任何内容。本例中没有定义任何角色。只需使用存储过程进行简单的身份验证。现在,我想通过 Spring Security 来完成这一切。可能正在编写一个java类/自定义spring框架的类,并在其中调用存储过程并在spring安全配置文件中使用该类。有人可以建议如何开始吗?

我已经实现了 AuthenticationProvider。以下是*security.xml。

  <http auto-config="true"  use-expressions="true">
<intercept-url pattern="/rest/*" access="permitAll"></intercept-url>
</http>

<authentication-manager >
<authentication-provider ref="csAuthenticationProvider" />
</authentication-manager>

但是,安全框架正在寻找角色。就我而言,没有定义角色。正如我之前所说,用户第一次进行身份验证时没有使用 spring 框架。如果用户想要进行任何休息调用,Spring Security 需要重新对用户进行身份验证。这并不意味着用户需要重新输入凭据。用户的凭据在其余调用/请求中可用,因为他已经经过身份验证。唯一需要做的就是我需要通过使用请求来使用凭据并使用存储过程重新验证。当然,使用 AuthenticationProvider 可能是一个好主意,但是authenticate(Authenticationauthentication)方法的参数“Authenticationauthentication”对我来说没有用,因为我需要再次调用我自己的存储过程调用。我暂时没有使用Authentication对象,而是使用authenticate()方法中的存储过程调用代码。但是,奇怪的是,authenticate() 方法没有被调用。我很惊讶,也很困惑。有人对我做错的地方有任何想法吗?

最佳答案

听起来您需要实现一个身份验证提供程序。这是一个非常简单的示例,我认为您可以调整它来调用您的存储过程。

http://danielkaes.wordpress.com/2013/02/20/custom-authentication-provider-in-spring/

关于java - 如何将 Spring security 与自定义 java 类/自定义 spring 框架的类一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21881802/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com