当前位置: 首页 > 知识库问答 >
问题:

在Spring Cloud Dataflow中有没有实现jdbc用户身份验证的方法?

松茂实
2023-03-14

这是我编写的代码,我在这里使用了自定义的用户详细信息服务,但每次我试图运行这个代码bean时,都没有找到Epection开始,我想知道有没有实现它的方法,因为我看到auth对象有一个方法auth.jdbcauthentication();

package org.springframework.cloud.dataflow.server.config.security;

/**
 * Created by smajumder on 16-May-17.
 */

import org.apache.tomcat.jdbc.pool.DataSource;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
import org.springframework.security.config.annotation.authentication.configurers.GlobalAuthenticationConfigurerAdapter;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.core.userdetails.UserDetailsService;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.security.crypto.password.PasswordEncoder;


@Configuration
@EnableWebSecurity
@ConditionalOnProperty("security.authentication.jdbc.enabled")
@ConfigurationProperties(prefix = 
JDBCAuthenticationConfiguration.CONFIGURATION_PROPERTIES_PREFIX)
public class JDBCAuthenticationConfiguration extends 
GlobalAuthenticationConfigurerAdapter {

public static final String CONFIGURATION_PROPERTIES_PREFIX ="security"
        + ".authentication.jdbc";
private static final org.slf4j.Logger logger = LoggerFactory.getLogger(JDBCAuthenticationConfiguration.class);

@Autowired
private CustomUserDetailsService userDetailsService ;

@Autowired
private DataSource dataSource;

@Override
public void init(AuthenticationManagerBuilder auth) throws Exception {
    logger.info("JDBC authentication Starting .....");
    auth.userDetailsService(userDetailsService).passwordEncoder(passwordencoder());
    logger.info("JDBC authentication Enabled .....");


}

@Bean(name="passwordEncoder")
public PasswordEncoder passwordencoder(){
    return new BCryptPasswordEncoder();
}



}

这是我在init()中执行此操作后的堆栈跟踪

 securityStateBean.setAuthenticationEnabled(true);
    securityStateBean.setAuthorizationEnabled(false);

共有1个答案

常炯
2023-03-14

我想这个医生可能会有帮助。

此外,还有一个示例。

 类似资料:
  • 我目前正在为Spring Boot网站编写一个评论系统,它将基于一个简单的REST API。 为了让人们删除或更新他们之前发布的评论,我想在Cookie中存储一个唯一的令牌来记住/识别他们。用户不需要注册以便发表评论。当用户删除cookie或cookie过期时,将无法取回删除/修改注释的权限。 当然,我自己使用过滤器来实现这样的功能是可能的,但是我想知道在Spring中是否有一种标准的方法(可能是

  • null 原因:javax.net.ssl.sslhandShakeException:在java.base/sun.security.ssl.alert.createsslException(Alert.java:128)在java.base/sun.security.ssl.alert.createsslException(Alert.java:117)在java.base/sun.secur

  • 我试图按照API密钥身份验证代码从这个答案:https://stackoverflow.com/a/48448901 我创建了我的过滤器类: 然后我实现了我的安全配置: 当我用头作为请求的一部分对应用程序进行外部调用时,我得到一个403禁止响应。我可以看到过滤器从头中拉出键。这部分正在工作。 但是,不会调用authenticate()方法来检查头是否有效。我不确定我错过了什么,代码在我看来是一样的

  • 是否可以使用Kerberos但不使用JAAS来验证用户/密码?

  • jsonparser(msg); } } } } 我正在尝试使用JSON来放东西。所以我收到的每条消息都是用JSON库解析的。协商消息为:session_unsecurited跟踪跟踪如下:

  • 我在web应用程序中使用Spring Security(v3.1.3)进行X.509身份验证。用户和角色存储在数据库中,但我实际上不需要这样做,因为客户端证书的CNs符合“[角色]-[用户名]”模式,这意味着我已经从证书本身获得了用户名和角色。那么,如何不费吹灰之力就消除数据库呢?我应该编写自己的用户服务实现来填充UserDetails,还是有更优雅的方法?