欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Spring Security permitAll()不允許匿名訪問(wèn)的操作

 更新時(shí)間:2021年06月22日 11:03:13   作者:java牛牛c  
這篇文章主要介紹了Spring Security permitAll()不允許匿名訪問(wèn)的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

Spring Security permitAll()不允許匿名訪問(wèn)

修改前

 http
        .addFilterBefore(muiltpartFilter, ChannelProcessingFilter.class)
        .addFilterBefore(cf, ChannelProcessingFilter.class)
        .authorizeRequests()
            .anyRequest()
            .authenticated()
            .and()
        .authorizeRequests()
            .antMatchers("/ping**")
            .permitAll()
            .and()
        .formLogin()
            .loginPage("/login")
            .permitAll()
            .and()
        .logout()
            .logoutUrl("/logout")
        .logoutSuccessUrl("/login");

修改后

 http
        .addFilterBefore(muiltpartFilter, ChannelProcessingFilter.class)
        .addFilterBefore(cf, ChannelProcessingFilter.class)
        .authorizeRequests()
            .antMatchers("/ping**")
            .permitAll()
            .and()
        .formLogin()
            .loginPage("/login")
            .permitAll()
            .and()
        .authorizeRequests()
            .anyRequest()
            .authenticated()
            .and()
        .logout()
            .logoutUrl("/logout")
        .logoutSuccessUrl("/login");

permitAll() 順序很重要,如同在 XML 配置中,即把 authorizeRequests().anyRequest().authenticate 放到最后

Spring Security @PreAuthorize 攔截?zé)o效

1. 在使用spring security的時(shí)候使用注解

@PreAuthorize("hasAnyRole('ROLE_Admin')")

放在對(duì)方法的訪問(wèn)權(quán)限進(jìn)行控制失效,其中配置如:

@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter { 
    @Autowired
    UserDetailsService userDetailsService;
 
    @Bean
    @Override
    public AuthenticationManager authenticationManagerBean() throws Exception {
        return super.authenticationManagerBean();
    }
 
    @Override
    protected void configure(AuthenticationManagerBuilder auth) throws Exception {
        auth.userDetailsService(userDetailsService);
    }
    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.csrf().disable()
            .authorizeRequests()
            .antMatchers("/res/**", "/login/login*").permitAll()
            .anyRequest().authenticated()
            .and().formLogin().loginPage("/login/login").defaultSuccessUrl("/")
                .passwordParameter("password")
                .usernameParameter("username")
            .and().logout().logoutSuccessUrl("/login/login");
    }
}

Controller中的方法如下:

@Controller
@RequestMapping("/demo")
public class DemoController extends CommonController{
    @Autowired
    private UserService userService;
 
    @PreAuthorize("hasAnyRole('ROLE_Admin')")
    @RequestMapping(value = "user-list")
    public void userList() {
         
    }
}

使用一個(gè)沒(méi)有ROLE_Admin權(quán)限的用戶(hù)去訪問(wèn)此方法發(fā)現(xiàn)無(wú)效。

修改一下 SecurityConfig:

  @Override
   protected void configure(HttpSecurity http) throws Exception {
       http.csrf().disable()
           .authorizeRequests()
           .antMatchers("/res/**", "/login/login*").permitAll()
           .antMatchers("/demo/user-list").access("hasRole('ROLE_Admin')")
           .anyRequest().authenticated()
           .and().formLogin().loginPage("/login/login").defaultSuccessUrl("/")
               .passwordParameter("password")
               .usernameParameter("username")
           .and().logout().logoutSuccessUrl("/login/login");
   }

添加上:

.antMatchers("/demo/user-list").access("hasRole('ROLE_Admin')")

可以被正常攔截,說(shuō)明是方法攔截沒(méi)有生效。

如果是基于xml,則需要在配置文件中加上:

<security:global-method-security pre-post-annotations="enabled" proxy-target-class="true" />

換成Annotation方式以后,則需要使用 @EnableGlobalMethodSecurity(prePostEnabled=true) 注解來(lái)開(kāi)啟。

并且需要提供以下方法:

@Bean
@Override
public AuthenticationManager authenticationManagerBean() throws Exception {
  return super.authenticationManagerBean();
}

才可正常攔截。

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 用java實(shí)現(xiàn)斗地主發(fā)牌過(guò)程

    用java實(shí)現(xiàn)斗地主發(fā)牌過(guò)程

    這篇文章主要為大家詳細(xì)介紹了用java實(shí)現(xiàn)斗地主發(fā)牌過(guò)程,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-11-11
  • SpringBoot之核心依賴(lài)和自動(dòng)配置方式

    SpringBoot之核心依賴(lài)和自動(dòng)配置方式

    這篇文章主要介紹了SpringBoot之核心依賴(lài)和自動(dòng)配置方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • java實(shí)現(xiàn)圖片任意角度旋轉(zhuǎn)

    java實(shí)現(xiàn)圖片任意角度旋轉(zhuǎn)

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)圖片任意角度旋轉(zhuǎn),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-04-04
  • Java全面講解順序表與鏈表的使用

    Java全面講解順序表與鏈表的使用

    大家好,今天給大家?guī)?lái)的是順序表和鏈表,我覺(jué)得順序表還是有比較難理解的地方的,于是我就把這一塊的內(nèi)容全部整理到了一起,希望能夠給剛剛進(jìn)行學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)的人帶來(lái)一些幫助,或者是已經(jīng)學(xué)過(guò)這塊的朋友們帶來(lái)更深的理解,我們現(xiàn)在就開(kāi)始吧
    2022-05-05
  • java8 stream中Collectors.toMap空指針問(wèn)題及解決

    java8 stream中Collectors.toMap空指針問(wèn)題及解決

    這篇文章主要介紹了java8 stream中Collectors.toMap空指針問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • Java的幾個(gè)重要版本_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    Java的幾個(gè)重要版本_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    jdk8 將在2014年3月份發(fā)布,迄今為止,可能是最大更新的java版本,也是令人期待的一個(gè)版本,在Java中引入閉包概念對(duì)Java程序開(kāi)發(fā)方法的影響甚至?xí)笥贘ava5中引入的泛型特征對(duì)編程方式帶來(lái)的影響
    2017-06-06
  • Java解析調(diào)用webservice服務(wù)的返回XML串詳解

    Java解析調(diào)用webservice服務(wù)的返回XML串詳解

    這篇文章主要介紹了Java解析調(diào)用webservice服務(wù)的返回XML串詳解的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-07-07
  • 淺談SpringCloud之Ribbon詳解

    淺談SpringCloud之Ribbon詳解

    這篇文章主要介紹了淺談SpringCloud之Ribbon,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)SpringCloud的小伙伴們有很大的幫助,需要的朋友可以參考下
    2021-05-05
  • javaweb實(shí)現(xiàn)投票系統(tǒng)

    javaweb實(shí)現(xiàn)投票系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了javaweb實(shí)現(xiàn)投票系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-09-09
  • Spring?ComponentScan的掃描過(guò)程解析

    Spring?ComponentScan的掃描過(guò)程解析

    這篇文章主要介紹了spring?ComponentScan的掃描過(guò)程解析,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-03-03

最新評(píng)論