Appearance
权限认证
系统权限认证有两种实现, 一种基于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