将 apache Shiro 与 Spring MVC 非 xml 项目一起使用

Posted

技术标签:

【中文标题】将 apache Shiro 与 Spring MVC 非 xml 项目一起使用【英文标题】:Using apache Shiro with Spring MVC non xml project 【发布时间】:2017-08-16 00:56:16 【问题描述】:

我有一个使用 Spring mvc 4 的项目,我需要在其中包含 apache shiro 安全性。我试图在网上搜索我的问题的解决方案,但没有设法找到一些东西。虽然 Shiro 的网站上有一个指南,但是这个示例仅适用于 xml 配置的 Spring 项目,我的项目根本不包含任何 xml,当我尝试使用注释配置 Shiro 时,它会失败。 当我运行这个项目时,我可以访问我的所有端点,并且它们都不受 Shiro 的限制。 我想我的配置是错误的,但我无法弄清楚它的哪一部分是错误的。 我不允许使用 Spring Boot(我知道有这方面的例子)。 这是我的配置类:

@Configuration
@EnableWebMvc
@ComponentScan(basePackages = "com.myproject.menu")
public class AppConfiguration extends WebMvcConfigurerAdapter


@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) 
    registry.addResourceHandler("/**").addResourceLocations("/");


@Bean(name="shiroFilter")
public ShiroFilterFactoryBean shiroFilter ()
    ShiroFilterFactoryBean shiroFilter = new ShiroFilterFactoryBean();
    shiroFilter.setLoginUrl("/MenuTest/login");
    shiroFilter.setFilterChainDefinitions("/MenuTest/init=anon");
    shiroFilter.setFilterChainDefinitions("/MenuTest/**=authc");
    shiroFilter.setSecurityManager(realm());
    return shiroFilter;


private DefaultWebSecurityManager realm()
    DefaultWebSecurityManager realm = new DefaultWebSecurityManager();
    return realm;


提前谢谢!

【问题讨论】:

【参考方案1】:

查看 1.4.0 (RC2) 版本。更新了 Spring 和 Spring-Boot 支持。

以及源代码树中的示例: https://github.com/apache/shiro/tree/master/samples/spring-mvc

【讨论】:

以上是关于将 apache Shiro 与 Spring MVC 非 xml 项目一起使用的主要内容,如果未能解决你的问题,请参考以下文章

将 Struts 2 与 Apache Shiro 集成时如何显示结果页面

spring security与apache shiro 权限控制安全框架,那个更实用

Apache shiro的简单介绍与使用(与spring整合使用)

web应用安全框架选型:Spring Security与Apache Shiro

与 Spring Security/Apache Shiro 相比,JAAS 的缺点是啥?

Apache Shiro 与 Spring MVC AuthorizingRealm @Autowired java.lang.NullPointerException