专栏首页企业平台构建shiro springboot整合

shiro springboot整合

其实只要知道shiro和spring整合,那么使用springboot也就一样,通过springboot则是将之前的一堆复杂的配置,全部写到代码中去,同样作为maven项目,对应的pom文件如下:

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.6.RELEASE</version>
        <relativePath></relativePath>
    </parent>
    <properties>
        <java.version>1.8</java.version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <shiro.version>1.4.0-RC2</shiro.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <!--shiro-->
        <dependency>
            <groupId>org.apache.shiro</groupId>
            <artifactId>shiro-core</artifactId>
            <version>${shiro.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.shiro</groupId>
            <artifactId>shiro-web</artifactId>
            <version>${shiro.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.shiro</groupId>
            <artifactId>shiro-spring</artifactId>
            <version>${shiro.version}</version>
        </dependency>
    </dependencies>

其次就是shiro spring配置,当然 目前没有增加太多配置,但是原理都是一样的:

@Configuration
public class ShiroConfiguration {

    @Bean("shiroFilter")
    public ShiroFilterFactoryBean shiroFilter(){
        ShiroFilterFactoryBean shiroFilterFactoryBean = new ShiroFilterFactoryBean();
        shiroFilterFactoryBean.setSecurityManager(getSecurityManager());

        shiroFilterFactoryBean.setLoginUrl("login.html");
        shiroFilterFactoryBean.setSuccessUrl("index.html");

        Map<String, String> shiroFilterChainDefinitionMap = new LinkedHashMap<String,String>();
        shiroFilterChainDefinitionMap.put("/dologin","anon");
        shiroFilterChainDefinitionMap.put("/login.html","anon");
        shiroFilterChainDefinitionMap.put("/index.html","authc");
        shiroFilterChainDefinitionMap.put("/logout","anon");
        shiroFilterChainDefinitionMap.put("/**","authc");

        shiroFilterFactoryBean.setFilterChainDefinitionMap(shiroFilterChainDefinitionMap);
        return shiroFilterFactoryBean;
    }

    @Bean("securityManager")
    public SecurityManager getSecurityManager() {
        DefaultWebSecurityManager securityManager = new DefaultWebSecurityManager();
        Collection<Realm> realms = new ArrayList<Realm>();
        ((ArrayList<Realm>) realms).add(new DefaultRealm());
        securityManager.setRealms(realms);
        return  securityManager;
    }

    @Bean
    public LifecycleBeanPostProcessor getLifecycleBeanPostProcessor(){
        LifecycleBeanPostProcessor lifecycleBeanPostProcessor = new LifecycleBeanPostProcessor();
        return lifecycleBeanPostProcessor;
    }
}

其余的就是realm的定义,这些都是和spring一样使用,没什么特别的,最终的问题基本上都是对springboot的使用,因为平时用的springmvc比较多,那么如果将springboot配置成springmvc的使用模式,则需要相关的配置加以支持。如果使用相关的模板方式,则一样通过配置对应的过滤器完成即可。

整体的代码量比较少,由于springboot提供了相关的支持。

git地址:shiro springboot

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 安全验证框架shiro(三)

    首先看该项目配置相关的信息,使用的idea,创建maven项目,并在pom.xml中加入如下依赖:

    sucl
  • 安全验证框架shiro(一)

    Authorization:授权,即权限验证,验证某个已认证的用户是否拥有某个权限;即判断用户是否能做事情,常见的如:验证某个用户是否拥有某个角色。或者细粒度的...

    sucl
  • shiro和spring整合

    之前用shiro参考官网写了简单的示例,对于shiro我们大致可以了解其主要的构造,网上有很多这样的示例,但是对于开发者来说,我们需要做的很少,可以说大部分模块...

    sucl
  • Shiro系列(3) - What is shiro?

    什么是shiro? Shiro是apache的一个开源权限管理的框架,它实现用户身份认证,权限授权、加密、会话管理等功能,组成了一个通用的安全认证框架 ...

    风间影月
  • Shiro学习笔记六(自定义Reaml-使用数据库设置 user roles permissions)

    对于什么是Realm,我使用过之后,个人总结一下:shiro要进行身份验证,就要从realm中获取相应的身份信息来进行验证,简单来说,我们可以自行定义realm...

    梅花
  • Shiro学习笔记五(Shiro标签,及通配符)

        用户[<shiro:principal/>]拥有角色admin<br/>

    梅花
  • Shiro学习笔记(一)

    梅花
  • 安全验证框架shiro(三)

    首先看该项目配置相关的信息,使用的idea,创建maven项目,并在pom.xml中加入如下依赖:

    sucl
  • 安全验证框架shiro(一)

    Authorization:授权,即权限验证,验证某个已认证的用户是否拥有某个权限;即判断用户是否能做事情,常见的如:验证某个用户是否拥有某个角色。或者细粒度的...

    sucl
  • 从零开始写项目终极【维护网站、修复Bug】

    url自动携带jsessionid 在我使用浏览器收藏了我写的网站的时候,有的时候会访问不了页面。 看了一下原因,是由于url携带了jsessionId,我就奇...

    Java3y

扫码关注云+社区

领取腾讯云代金券