Basi c JDB C аутентификация с пружинной защитой - PullRequest
0 голосов
/ 27 апреля 2020

Я пытаюсь добавить простую аутентификацию в свой проект, используя AuthenticationManagerBuilder, используя мою базу данных Oracle, и я использовал схему пользователя Spring из документов:

https://docs.spring.io/spring-security/site/docs/current/reference/html5/#user - схема

CREATE TABLE USERS (
    USERNAME NVARCHAR2(128) PRIMARY KEY,
    PASSWORD NVARCHAR2(128) NOT NULL,
    ENABLED CHAR(1) CHECK (ENABLED IN ('Y','N') ) NOT NULL
);


CREATE TABLE AUTHORITIES (
    USERNAME NVARCHAR2(128) NOT NULL,
    AUTHORITY NVARCHAR2(128) NOT NULL
);
ALTER TABLE AUTHORITIES ADD CONSTRAINT AUTHORITIES_UNIQUE UNIQUE (USERNAME, AUTHORITY);
ALTER TABLE AUTHORITIES ADD CONSTRAINT AUTHORITIES_FK1 FOREIGN KEY (USERNAME) REFERENCES USERS (USERNAME) ENABLE;

и я настроил свой компонент источника данных, и он работает нормально, но все же моя страница входа не принимает имя пользователя и пароль, которые я установил в своей БД, и я потратил немало времени количество времени, которое я пытался решить.

Вот мой файл конфигурации безопасности:

@Configuration
@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter
{
    @Autowired
    private DataSource myDataSource;

    @Override
    protected void configure(AuthenticationManagerBuilder auth) throws Exception
    {
        auth.jdbcAuthentication()
                .dataSource(myDataSource)
                .usersByUsernameQuery("select username, password, enabled from users where username = ?")
                .authoritiesByUsernameQuery("select username, authority from authorities where username = ?");
    }

    @Override
    protected void configure(HttpSecurity http) throws Exception
    {
        http.authorizeRequests()
                .anyRequest()
                .authenticated()
                .and()
                .formLogin()
                .loginPage("/showMyLoginPage")
                .loginProcessingUrl("/authenticateTheUser")
                .permitAll()
                .and()
                .logout()
                .logoutSuccessUrl("/")
                .logoutUrl("/logoutUser")
                .and()
                .csrf()
                .disable();
    }

И мои запросы на вставку:

INSERT INTO USERS VALUES ('test','test123', 'Y');
INSERT INTO AUTHORITIES VALUES ('test', 'ROLE_ADMIN');

Я что-то упустил?

...