Skip to content

权限认证

系统权限认证有两种实现, 一种基于Shiro全框架一种基于SaToken认证框架, 开发者可以根据自己的需求选择使用哪种认证框架, 目前iboot平台对SaToken的适配更加全面所以默认使用SaToken。系统可以通过以下方式来选择合适自己的权限认证。

xml
// 在bootstrap项目的pom.xml中
<!-- Shiro权限认证插件(和SaToken二选其一)-->
<!--        <dependency>-->
<!--            <groupId>com.iteaj</groupId>-->
<!--            <artifactId>iboot-shiro</artifactId>-->
<!--            <version>${project.version}</version>-->
<!--        </dependency>-->

<!-- SaToken权限认证插件(和Shiro二选其一)-->
<dependency>
    <groupId>com.iteaj</groupId>
    <version>${project.version}</version>
    <artifactId>iboot-SaToken</artifactId>
</dependency>

匿名权限

系统匿名权限可以在模块和插件下单独配置, 在Spring自动配置类注册bean

java
@AutoConfiguration
public class DemoAutoConfiguration {
    /**
     * @return
     */
    @Bean
    @Order(value = 18)
    public OrderFilterChainDefinition demoFilterChainDefinition() {
        return new OrderFilterChainDefinition().addAnon("/demo/test", "/demo/pattern/**");
    }
}

权限工具类

系统提供了SecurityUtil工具类来获取当前登录用户的信息, 如获取当前登录用户的id、获取当前登录用户的用户等, 可以参考以下代码

java
// 判断是否登录
SecurityUtil.isLogin();
// 获取当前登录用户的id
SecurityUtil.getLoginId();
// 获取当前登录用户的用户
SecurityUtil.getLoginUser();
// 是否超级管理员
SecurityUtil.isSuper();
// ... 其他的方法可以参考源码

app认证授权

app一般没有cookie, 所以需要在登录的时候将token放到请求header里面, 此种方式只支持SaToken的认证, 不支持Shiro认证

properties
  # 在application-satoken.yml配置文件里面进行修改相应的配置
  # 设置从 header 里读取 Token
  is-read-header: true
  # 设置在登录后将 Token 写入到响应头(设置为true)
  is-write-header: ${framework.web.session.write-header}

接口文档

系统提供的接口文档功能是基于smart-doc生成的, 可以通过以下方式来生成接口文档

xml
// 1. 在bootstrap项目的pom.xml中打开以下注释
<plugin>
    <version>3.0.4</version>
    <groupId>com.ly.smart-doc</groupId>
    <artifactId>smart-doc-maven-plugin</artifactId>
    <executions>
        <execution>
            <!--如果不需要在执行编译时启动smart-doc,则将phase注释掉-->
            <phase>compile</phase>
            <goals>
                <!--smart-doc提供了html、openapi、markdown等goal,可按需配置-->
                <goal>html</goal>
                <goal>openapi</goal>
            </goals>
        </execution>
    </executions>
</plugin>
// 2. 使用idea或者直接用maven打包项目 mvn clean package -DskipTests
// 3. 生成的接口文档在bootstrap项目的target/classes/static/doc目录下, 可以通过浏览器访问
// 4. 访问地址可以在系统启动日志中查看, 包含两种访问地址
//    knife4j访问地址:http://127.0.0.1:8085/doc.html                                         
//    smart-doc访问地址:http://127.0.0.1:8085/static/doc/index.html