Как игнорировать некоторые ресурсы / URL для всех в весенней безопасности? - PullRequest
0 голосов
/ 27 декабря 2018

У меня есть несколько URL-адресов (по состоянию на данный момент), которые я хотел бы разрешить каждому пользователю, например, регистрационные и логин-адреса.Я только хочу исключить любой путь URL-адреса после регистрации и защитить или ограничить любые другие URL-адреса.

Пожалуйста, используйте код ниже:

   package com.travelplanner.rest.config;

    //COPY
    import javax.sql.DataSource;

    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
    import org.springframework.security.config.annotation.web.builders.HttpSecurity;
    import org.springframework.security.config.annotation.web.builders.WebSecurity;
    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.User.UserBuilder;
    import org.springframework.security.provisioning.JdbcUserDetailsManager;
    import org.springframework.security.provisioning.UserDetailsManager;

    @Configuration
    @EnableWebSecurity
    public class SecurityConfig extends WebSecurityConfigurerAdapter {
        @Autowired
        private DataSource securityDataSource;

        @Bean
        public UserDetailsManager userDetailsManager() {
            JdbcUserDetailsManager jdbcUserDetailsManager = new JdbcUserDetailsManager();
            jdbcUserDetailsManager.setDataSource(securityDataSource);
            return jdbcUserDetailsManager;
        }

        @Override
        protected void configure(AuthenticationManagerBuilder auth) throws Exception {
            auth.jdbcAuthentication().dataSource(securityDataSource);
        }

        @Override
        protected void configure(HttpSecurity http) throws Exception {
            http.cors().and().httpBasic().and().csrf().disable()     
            .authorizeRequests().antMatchers("/register/**").permitAll();
        }

    }

Это пружина MVC отдыха в Google Engine Engine.Я использовал приведенный выше фрагмент, и в нем говорится, что он не авторизован даже для antmatchers.Пожалуйста помоги!Заранее спасибо.

1 Ответ

0 голосов
/ 27 декабря 2018

Это, вероятно, часть httpBasic(), требующая аутентификации.Сначала вы должны указать конкретные инструкции, и, наконец, более общие, так что попробуйте следующее:

http.cors().and().csrf().disable()
    .authorizeRequests().antMatchers("api/users/register/user").permitAll()
    .and()
    .anyRequest().httpBasic();

Это позволяет каждому получить доступ к "api / users / register / user", но требует http-аутентификации для других URL-адресов.

...