小编Art*_*hur的帖子

如何获取类及其超类的注释列表

我正在编写一个方法,该方法应该检索声明类及其超类的特定方法的所有注释。

通过在声明类上使用该方法getAnnotations(),结果表仅包含声明类注释,而忽略超类注释。如果我删除声明类的注释,则存在超类注释。

我在这里缺少什么?

检索注释的简化方法:

public void check(Method invokedMethod) {
    for (Annotation annotation : invokedMethod.getDeclaringClass().getAnnotations()) {
        // Do something ...
    }
}
Run Code Online (Sandbox Code Playgroud)

(我尝试获取的所有注释都有@Inherited注释)

java reflection inheritance annotations

6
推荐指数
1
解决办法
1万
查看次数

为什么我的自定义PermissionEvaluator没有被调用?

我正在努力使用我的Spring Security配置,到目前为止我无法使其工作.我不知道为什么我的自定义PermissionEvaluator没有被调用,我的@PreAuthorize注释使用hasPermission表达式被忽略.

我正在使用Spring 4.2.4和Spring security 4.1.0

她是我的代码:

网络安全配置

@Configuration
@EnableWebSecurity
public class MyWebSecurityConfig extends WebSecurityConfigurerAdapter {
    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http //
                .addFilterBefore(wafflePreAuthFilter(), AbstractPreAuthenticatedProcessingFilter.class) //
                .authenticationProvider(preauthAuthProvider()) //
                .csrf().disable() //
                .authorizeRequests() //
                .antMatchers("/ui/**").authenticated() //
                .anyRequest().permitAll();
    }

    @Bean
    public WafflePreAuthFilter wafflePreAuthFilter() throws Exception {
        WafflePreAuthFilter filter = new WafflePreAuthFilter();
        filter.setAuthenticationManager(authenticationManager());
        return filter;
    }

    @Bean
    public PreAuthenticatedAuthenticationProvider preauthAuthProvider() {
        PreAuthenticatedAuthenticationProvider preauthAuthProvider = new PreAuthenticatedAuthenticationProvider();
        preauthAuthProvider.setPreAuthenticatedUserDetailsService(userDetailsServiceWrapper());
        return preauthAuthProvider;
    }

    @Bean
    public UserDetailsByNameServiceWrapper<PreAuthenticatedAuthenticationToken> userDetailsServiceWrapper() {
        UserDetailsByNameServiceWrapper<PreAuthenticatedAuthenticationToken> wrapper = new UserDetailsByNameServiceWrapper<PreAuthenticatedAuthenticationToken>();
        wrapper.setUserDetailsService(myUserDetailsService()); …
Run Code Online (Sandbox Code Playgroud)

java spring spring-security

6
推荐指数
1
解决办法
1249
查看次数