2017-09-26 1 views
5

웹 응용 프로그램에서 Spring 보안을 사용하고 있으며 Javaconfig를 사용하고 있습니다. 최근에 우리는 또한 애플리케이션에서 Spring SAML 인증을 추가하고 마침내 장애물을 해결하기 위해 노력했습니다. WebApplicationInitializeronStartUp() 내부에서 일부 사전 조건에 따라 SpringSecurity 구성 또는 SpringSaml 구성을로드하고 있습니다.스프링 보안에서 애플리케이션 컨텍스트를 동적으로 전환하는 방법은 무엇입니까?

어떻게 동적으로이 작업을 수행 할 수 있습니까? 실제로 버튼을 소개하고 관리자가이 버튼을 클릭하면 관리자가 모든 사용자를 로그 아웃하고 컨텍스트를 다시로드해야합니다. 이 시점에서 ok 시스템은 언젠가 액세스 할 수 없으며 응용 프로그램 컨텍스트를 초기화합니다 (실제로 내 목표).

다른 말로하면 onStartUp() 방법을 WebApplicationInitializer이라고 어떻게 부를 수 있습니까?

+1

스프링 응용 프로그램 컨텍스트를 다시로드하지 않고도 수행 할 수 있다고 생각합니다. 컨텍스트가 새로 고쳐 지더라도 다른 부작용이 발생할 수 있습니다. [이 질문] (https://stackoverflow.com/questions/27545846/spring-integration-getting-exception-on-refreshing-application-context-2nd-time) 컨트롤러에서 응용 프로그램 컨텍스트를 새로 고치는 방법을 제공했지만 결국은 다른 문제에서. 구성 코드 중 일부를 공유 할 수 있다면 더 나은 답변을 제공하는 데 도움이 될 수 있습니다. – skadya

답변

6

로드 된 보안 구성을 제어하기 위해 스프링 환경 프로파일을 사용합니다.

프로필을 전환하려면 활성 프로필이 나열된 구성 파일을 업데이트하고 앱을 다시로드하십시오.

Spring Boot Reference Guide - 25. Profiles을 참조하십시오.

+0

Andreas에게 감사드립니다. 프로그래밍 방식으로 "앱을 다시로드하는 방법"을 공유 할 수 있습니까? ? – aProgrammer

+0

@aProgrammer'spring-boot-devtools'를 사용하면 설정 파일을 업데이트하면 자동으로 LiveReload가 실행됩니다 : [Spring Boot Reference Guide - 83. Hot Swapping] (https://docs.spring.io/spring-boot)을 참조하십시오. /docs/current/reference/html/howto-hotswapping.html). – Andreas

관련 문제