Java 带有组织名称、用户名和密码的Spring boot登录页面

Java 带有组织名称、用户名和密码的Spring boot登录页面,java,spring-boot,spring-security,Java,Spring Boot,Spring Security,我试图创建一个登录机制,在登录页面中我接受这3个字段- 组织名称、用户名、密码 虽然我已经成功地使用用户名和密码组合登录,但我需要检查org_name和username的组合,这就像users表中的唯一键一样 我已经研究了SpringBoot的JDBC身份验证、JPA身份验证,但就是没能把它做好 对于基于JDBC身份验证的自定义查询,我无法获取要在自定义查询中传递的“org_name”参数 注:我对Springboot框架还不熟悉,所以如果这个问题太难回答,请原谅。但是我需要一些紧急帮助。在po

我试图创建一个登录机制,在登录页面中我接受这3个字段- 组织名称、用户名、密码

虽然我已经成功地使用用户名和密码组合登录,但我需要检查org_name和username的组合,这就像users表中的唯一键一样

我已经研究了SpringBoot的JDBC身份验证、JPA身份验证,但就是没能把它做好

对于基于JDBC身份验证的自定义查询,我无法获取要在自定义查询中传递的“org_name”参数


注:我对Springboot框架还不熟悉,所以如果这个问题太难回答,请原谅。但是我需要一些紧急帮助。

在pom.xml中添加以下依赖项

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-security</artifactId>
</dependency>
<dependency>
  <groupId>org.springframework.security</groupId>
  <artifactId>spring-security-test</artifactId>
  <scope>test</scope>
</dependency>
这是我在学习spring安全性时使用的通用代码。
谢谢

我想你需要在这里多做点工作。对于基于用户名/密码的身份验证,请使用
UsernamePasswordAuthenticationFilter
。因此,您必须扩展此筛选器并覆盖
attemptAuthentication
方法,在该方法中,您可以访问http请求对象。在这里,您可以访问额外的“org\u name”参数。然后,您需要实现“身份验证”接口,您将在其中放置额外的参数。然后从
attemptAuthentication
方法返回自定义身份验证对象的实例。您还需要提供自己的身份验证提供商,该提供商将使用此身份验证对象对用户进行身份验证。

@meriton,谢谢,我正在经历这一过程,尽管它符合我的要求,但这是一种有点复杂的方法。寻找更干净、更简单的东西。否则,将不得不这样做。感谢Rohith的回答,但我不寻找基本的用户名,密码为基础的登录。我能够成功实施。在这里,我希望能够使用更多的这两个领域。我相信答案在于链接,但这是一个有点复杂的方法。寻找更干净、更简单的东西。博客中的自定义方法也谈到了这一点,我相信这就是解决方案。谢谢
package com.example.securingweb;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
import org.springframework.security.core.userdetails.User;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.security.core.userdetails.UserDetailsService;
import org.springframework.security.provisioning.InMemoryUserDetailsManager;

@Configuration
@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http
            .authorizeRequests()
                .antMatchers("/", "/home").permitAll()
                .anyRequest().authenticated()
                .and()
            .formLogin()
                .loginPage("/login")
                .permitAll()
                .and()
            .logout()
                .permitAll();
    }

    @Bean
    @Override
    public UserDetailsService userDetailsService() {
        UserDetails user =
             User.withDefaultPasswordEncoder()
                .username("user")
                .password("password")
                .roles("USER")
                .build();

        return new InMemoryUserDetailsManager(user);
    }
}