Domanda

Come posso programmazione accedere al contenuto delle dichiarazioni intercetta-url (dal http: // www. schema springframework.org/schema/security)? Per esempio,

<http auto-config='true'>
    <intercept-url pattern="/static/**" filters="none" access="IS_AUTHENTICATED_ANONYMOUSLY" />
    <intercept-url pattern="/**" access="ROLE_USER" />
    ...
</http>

Mappatura ruolo di sicurezza a molla è usato per limitare l'accesso a determinate pagine. Voglio estrarre le stesse informazioni di mappatura ruolo ( modello e Accetta attributi) per essere in grado di mostrare solo le pagine del HTML-menu che ogni ruolo ha accesso a vedere .

Ho avuto uno sguardo al HttpConfigurationBuilder, ma è pacchetto protetto e non sembra offrire così tante informazioni. Ho anche provato:

  FilterSecurityInterceptor interceptor = appContext.getBean(FilterSecurityInterceptor.class);
  if (interceptor != null) {
      for (ConfigAttribute attr : interceptor.getSecurityMetadataSource().getAllConfigAttributes()) {
          // Extract the attributes ... 
          attr.getAttribute();
      }
  }

ma ho solo riuscito a accedere ai ruoli, non i modelli di URL.

È stato utile?

Soluzione

La configurazione dichiarato utilizzando un supporto dello spazio dei nomi non esiste nello stesso "format" dopo contesto di applicazione è stato caricato.

Se si desidera conservare le informazioni sulla mappatura ruolo, è necessario accedervi durante l'analisi della configurazione - e salvare i dati necessari per l'utilizzo futuro. È possibile effettuare questa operazione sottoclasse org.springframework.security.config.http.HttpSecurityBeanDefinitionParser, leggendo i dati che si desidera e delegando a super.

Primavera di sicurezza 3 -. Appendice D. Extensible XML authoring per l'utilizzo di implementazioni BeanDefinitionParser personalizzati

Altri suggerimenti

Forse si può verificare se getFilterChainMap () della classe FilterChainProxy ti dà le informazioni pertinenti.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top