加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

如何在Java 8中进行条件方法链接

发布时间:2020-12-15 08:28:31 所属栏目:Java 来源:网络整理
导读:我有一个 spring security配置方法.我想要一个特定的方法链接antMatchers(“/ ** / **”).permitAll()仅在条件匹配时.这样的事情{dev == true? .antMatchers(“/ ** / **”).permitAll():() – {}}.当然,这不是一个有效的语法,最重要的做法是什么.寻找menim
我有一个 spring security配置方法.我想要一个特定的方法链接antMatchers(“/ ** / **”).permitAll()仅在条件匹配时.这样的事情{dev == true? .antMatchers(“/ ** / **”).permitAll():() – > {}}.当然,这不是一个有效的语法,最重要的做法是什么.寻找menimum编码.

@Override
    protected void configure(HttpSecurity http) throws Exception {
        http
            .csrf().disable()
            .cors().disable()
            .authorizeRequests()
            {dev == true ? .antMatchers("/**/**").permitAll(): ()->{}} //dev only. NEVER enable on prod 
                .antMatchers("/","/signup","/static/**","/api/sigin","/api/signup","**/favicon.ico").permitAll()
                .anyRequest().authenticated()
                .and()
            .formLogin()
                .loginPage("/")
                .loginProcessingUrl("/api/signin")
                .successHandler(authSuccessHandler())
                .failureHandler(authFailureHandler())
                .permitAll()
                .and()
            .logout()
                .permitAll();
    }

解决方法

唯一的方法是将中间对象分配给变量.

WhateverAuthorizeRequestsReturns partial = http
    .csrf().disable()
    .cors().disable()
    .authorizeRequests();

if (dev) // note: you don't need 'dev == true' like you had
{
    partial.someOptionalThing();
    // if the type is immutable then you need to reassign e.g.:
    // partial = partial.someOptionalThing()
}

partial.something()
    .somethingElse()
    .andTheRest();

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读