Как включить весеннюю безопасность для определенного URL - PullRequest
0 голосов
/ 21 мая 2018

я использую Spring Security, и моя конфигурация

@Override
protected void configure(HttpSecurity http) throws Exception {
    http.
        authorizeRequests()
            .antMatchers("/**").permitAll()
            .antMatchers("/admin/**").hasAuthority("ADMIN").anyRequest().authenticated()
            .and().csrf().disable().formLogin().loginPage("/adminlogin").failureUrl("/adminlogin?error=true")
            .defaultSuccessUrl("/admin/dashboard")
            .usernameParameter("email")
            .passwordParameter("password")
            .and().logout()
            .logoutRequestMatcher(new AntPathRequestMatcher("/logout"))
            .logoutSuccessUrl("/adminlogin?logout=true").and().exceptionHandling()
            .accessDeniedPage("/accessdenied");
}

. Теперь я пытаюсь добиться того, чтобы все ссылки были доступны без какой-либо защиты, но ссылки начинаются с / admin / ** и позволяют только пользователю с ролью"admin".

, но теперь он разрешает / admin / ** всем.

любые предложения.

Я испробовал много решений из stackoverflow, т.е. Какисправить роль в Spring Security? но не повезло.поведение остается таким же, оно позволяет публично использовать даже / admin / urls.

Ответы [ 2 ]

0 голосов
/ 24 мая 2018
http
    .csrf().disable()      
    .httpBasic().and()
    .authorizeRequests()
        .antMatchers("/admin/**").hasAuthority("ADMIN")
        .antMatchers("/**").permitAll()
        .anyRequest().authenticated()
        .and()
    .formLogin()
    .loginPage("/adminLogin").failureUrl("/adminLogin?error=true")
    .defaultSuccessUrl("/admin/dashboard")
    .usernameParameter("email")
    .passwordParameter("password")
    .and().logout()
    .logoutRequestMatcher(new AntPathRequestMatcher("/logout"))
    .logoutSuccessUrl("/adminLogin?logout=true").and().exceptionHandling()
    .accessDeniedPage("/accessdenied");

отлично работает для меня.

0 голосов
/ 21 мая 2018

Почему бы не попробовать роль?

@Configuration
@EnableWebSecurity
public class SecSecurityConfig extends WebSecurityConfigurerAdapter {
    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http
          .authorizeRequests()
          .antMatchers("/admin/**").hasRole("ADMIN");
    }
   }

ref: http://www.baeldung.com/spring-security-expressions-basic

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...