"intercept-url"을 동적으로 생성하는 방법. 내 사용자 이름과 역할은 데이터베이스에 저장됩니다. 이 모든 사용자를 봄 보안에 매핑하려고합니다.이 작업을 수행 할 수있는 방법이 있습니까?스프링 보안이 동적으로 사용자와 권한을 추가합니다.
0
A
답변
-1
0
당신은 com.icod.solapCore.spring.security.FilterInvocationSecurityMetadataSource의 자신의 구현을 제공해야 할 것이다 abour 읽을 수 있습니다.
이는 다음과 같이 수 :
public class MyFilterInvocationSecurityMetadataSource implements FilterInvocationSecurityMetadataSource {
@Override
public Collection<ConfigAttribute> getAttributes(Object object) throws IllegalArgumentException {
FilterInvocation filterInvocation = (FilterInvocation) object;
HttpServletRequest request = filterInvocation.getHttpRequest();
Collection<ConfigAttribute> result = new ArrayList<ConfigAttribute>();
// Find roles in database that secures the specified request
// ...
// For any role found, create a SecurityConfig object prefixed with "ROLE_" ex :
// for(String role : roles) {
// ConfigAttribute attribute = new SecurityConfig("ROLE_"+roleFound);
// result.add(attribute);
// }
return result;
}
@Override
public Collection<ConfigAttribute> getAllConfigAttributes() {
return null;
}
@Override
public boolean supports(Class<?> clazz) {
return FilterInvocation.class.isAssignableFrom(clazz);
}
}
을 그리고 자신과 기본 FilterInvocationSecurityMetadataSource을 교체해야합니다. BeanPostProcessor를 사용하여 봄에 호출 된 후, 구성 파일을 읽었지만 구성 공식을 만들기 전에 호출합니다. 다음과 같습니다
<bean id="solapcoreFilterInvocationSecurityMetadataSourceBeanPostProcessor" class="foo.bar.MyFilterInvocationSecurityMetadataSourceBeanPostProcessor"/>
희망이 도움말 :
public class MyFilterInvocationSecurityMetadataSourceBeanPostProcessor implements BeanPostProcessor {
private FilterInvocationSecurityMetadataSource metadataSource = new MyFilterInvocationSecurityMetadataSource();
@Override
public Object postProcessBeforeInitialization(Object bean, String name) throws BeansException {
if (bean instanceof FilterInvocationSecurityMetadataSource) {
return metadataSource;
}
return bean;
}
@Override
public Object postProcessAfterInitialization(Object bean, String name) throws BeansException {
return bean;
}
}
그런 다음 당신은 그냥 빈 포스트 프로세서를 구성해야합니다.
관련 문제
- 1. 스프링 보안이 작동하지 않습니다.
- 2. 스프링 보안이 중복되었습니다. RemeberMeProvider
- 3. 보안이 설정된 사용자와 방문자를 동일한 사이트에 섞음
- 4. 스프링 부트 - enableautoconfig없이 스프링 보안이 작동하지 않습니다.
- 5. 스프링 보안이 적용된 스프링 MVC 컨트롤러 상속
- 6. GWT 및 스프링 보안이 적용된 조건부 UI?
- 7. 스프링 3 보안이 작동하지 않습니다.
- 8. 스프링 보안이 적용된 Thymeleaf Swich
- 9. 스프링 보안이 때때로 이상하게 작동합니다.
- 10. 스프링 보안이 왜 POST를 방지합니까?
- 11. 스프링 메소드 보안이 작동하지 않습니다.
- 12. 스프링 보안이 적용된 Apache/mod_jk
- 13. 스프링 보안이 적용된 REST 보안
- 14. 스프링 보안이 적용된 Play Framework?
- 15. 스프링 보안이 예상대로 작동하지 않습니다.
- 16. mongodb에서 스프링 보안이 작동하지 않습니까?
- 17. 스프링 보안이 설정된 Facebook 로그인
- 18. 스프링 보안이 oauth2 토큰으로 액세스 제어를 설정했습니다.
- 19. 기본 보안이 스프링 부트로 시작되지 않습니다.
- 20. Cordova가 AndroidManifest.xml에 불필요한 권한을 추가합니다.
- 21. 스프링 MVC가 JSP에 동적으로 행을 추가합니다. 자바 스크립트 대 컨트롤러
- 22. 팀 기반 서버에서 모든 사용자와 권한을 찾습니다.
- 23. 스프링 보안이 적용된로드 밸런서에 https 오프로드
- 24. 스프링 보안이 로그인 호출을 가로 채지 않습니다.
- 25. Windows 7에서 스프링 보안이 작동하지 않습니다.
- 26. 스프링 보안이 아파치 프록시와 함께 작동하지 않습니다.
- 27. 스프링 보안 3.0 : 메서드 보안이 무시되었습니다.
- 28. 스프링 보안이 적용된 정적 리소스 처리
- 29. 스프링 보안이 작동하지 않는 이유는 무엇입니까?
- 30. ExtJS는 스프링 보안이 적용된 SYNC를 저장합니다.
목표가 무엇인지 자세히 설명해 주실 수 있습니까? 사용자 별 URL을 보호하려고합니다 (예 :'/ my-app/user/{userName}/**')? –
예 URL을 보호하고 싶습니다. 하지만 어떤 사용자가 데이터를 데이터베이스에 저장하고자하는 페이지에 액세스 할 권한이 있습니다. – vijay
스프링의 'WebExpressionVoter'가 관심의 대상 일 수 있습니다. –