web-dev-qa-db-ja.com

春のセキュリティログイン画面を無効にする方法?

私はspring-boot-starter-security依存関係を使用して、spring-securityに付属するいくつかのクラスを利用しています。しかし、私はそれを既存のvaadinアプリケーションに統合したいので、Springのデフォルトのログイン/認証画面ではなく、クラスのみを利用したいと思います。

この画面を無効にするにはどうすればよいですか?

メインエントリクラスが既にextends SpringBootServletInitializerであるため、WebSecurityConfigurerAdapterを拡張して構成を行うことはできません。また、vaadinアプリケーションは基本的に常に同じURLパスで実行され、内部ナビゲーションを使用します。

@EnableAutoConfiguration
public class MyApp extends SpringBootServletInitializer { 

        @Override
        protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
            return application.sources(MyApp.class);
        }

        public static void main(String[] args) {
            SpringApplication.run(MyApp.class, args);
        }
}

では、ログイン画面を無効にするにはどうすればよいですか?ただし、春のセキュリティ機能を利用しますか?

27
membersound

Spring BootのデフォルトのセキュリティはBasicです。 security.basic.enabled=falseを設定することで無効にできます。これについての詳細 ここ および ここ

8
Andrei Stefan

次のようにJavaベースの設定を使用できます:

@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {

    @Override
    protected void configure(HttpSecurity security) throws Exception
    {
     security.httpBasic().disable();
    }
}

自動的に更新される場合は、アプリケーションを再起動します。

27
noobdev

ログインルートを完全に無効にするには、Spring Security構成オブジェクトを使用します

次のスニペットではorg.springframework.boot:2.1.6.RELEASE

@Configuration
@EnableWebSecurity
class SecurityConfig : WebSecurityConfigurerAdapter() {
  override fun configure(security: HttpSecurity) {
    super.configure(security)

    security.httpBasic().disable()

    security.cors().and().csrf().disable().authorizeRequests()
      .anyRequest().authenticated()
      .and().formLogin().disable() // <-- this will disable the login route
      .addFilter(JWTAuthorizationFilter(authenticationManager()))
      .sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS)
  }

  @Bean
  fun corsConfigurationSource(): CorsConfigurationSource {
    val source = UrlBasedCorsConfigurationSource()
    val config = CorsConfiguration().applyPermitDefaultValues()
    config.addExposedHeader("Authorization")
    source.registerCorsConfiguration("/**", config)
    return source
  }
}
1
nilobarp

メインスプリングブートアプリケーションクラス(@SpringBootApplicationアノテーションを持つクラス)

@SpringBootApplication(exclude={SecurityAutoConfiguration.class})
0
Semir Umut Kurt

それでも解決策が必要な場合は、RESTコントローラに次のようにメソッドを配置します。

@RestController
public class myRestController{

    @GetMapping("/login")
    public String redirectTo(){
        return "yourRedirectLink";
    }

}

このソリューションは、スプリングで動作し、瓶に詰めて反応するのに非常に適しています

より簡単な解決策があるようです。

このアノテーションをメインクラスの上、またはSpingBootApplicationアノテーションと同じ場所に置くだけです。

@EnableAutoConfiguration(exclude = {org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration.class})

0
Fangming