mirror of
https://gitee.com/dromara/sa-token.git
synced 2024-11-30 02:48:10 +08:00
优化readme
This commit is contained in:
parent
ed7b1cef69
commit
30dad24302
@ -197,6 +197,11 @@ Sa-OAuth2 模块基于 [RFC-6749 标准](https://tools.ietf.org/html/rfc6749)
|
||||
- **[ TLog ]**:[ 一个轻量级的分布式日志标记追踪神器](https://gitee.com/dromara/TLog)
|
||||
|
||||
|
||||
## 贡献者名单
|
||||
感谢每一个为 Sa-Token 贡献代码的小伙伴
|
||||
|
||||
[![Giteye chart](https://chart.giteye.net/gitee/dromara/sa-token/CGZ7GT8E.png)](https://giteye.net/chart/CGZ7GT8E)
|
||||
|
||||
|
||||
## 交流群
|
||||
QQ交流群:1群:1002350610 (已满) 、
|
||||
|
@ -45,6 +45,8 @@ public @interface SaCheckPermission {
|
||||
* 例2: orRole = {"admin", "manager", "staff"},具有三个角色其一即可 <br>
|
||||
* 例3: orRole = {"admin, manager, staff"},必须三个角色同时具备
|
||||
* </p>
|
||||
*
|
||||
* @return /
|
||||
*/
|
||||
String[] orRole() default {};
|
||||
|
||||
|
@ -10,7 +10,7 @@ import cn.dev33.satoken.exception.SaTokenException;
|
||||
*
|
||||
* <p>
|
||||
* 一般情况下框架会为你自动注入合适的上下文处理器,如果代码断点走到了此默认实现类,
|
||||
* 说明你引入的依赖有问题或者错误的调用了Sa-Token的API, 请在[在线开发文档 > 附录 > 常见问题排查] 中按照提示进行排查
|
||||
* 说明你引入的依赖有问题或者错误的调用了Sa-Token的API, 请在[在线开发文档 → 附录 → 常见问题排查] 中按照提示进行排查
|
||||
* </p>
|
||||
*
|
||||
* @author kong
|
||||
|
@ -88,6 +88,7 @@ public class SaCookie {
|
||||
|
||||
/**
|
||||
* @param name 名称
|
||||
* @return 对象自身
|
||||
*/
|
||||
public SaCookie setName(String name) {
|
||||
this.name = name;
|
||||
|
@ -253,6 +253,7 @@ public class SaRouter {
|
||||
* 路由匹配,如果匹配成功则执行认证函数
|
||||
* @param pattern 路由匹配符
|
||||
* @param fun 要执行的校验方法
|
||||
* @return /
|
||||
*/
|
||||
public static SaRouterStaff match(String pattern, SaFunction fun) {
|
||||
return new SaRouterStaff().match(pattern, fun);
|
||||
@ -262,6 +263,7 @@ public class SaRouter {
|
||||
* 路由匹配,如果匹配成功则执行认证函数
|
||||
* @param pattern 路由匹配符
|
||||
* @param fun 要执行的校验方法
|
||||
* @return /
|
||||
*/
|
||||
public static SaRouterStaff match(String pattern, SaParamFunction<SaRouterStaff> fun) {
|
||||
return new SaRouterStaff().match(pattern, fun);
|
||||
@ -272,6 +274,7 @@ public class SaRouter {
|
||||
* @param pattern 路由匹配符
|
||||
* @param excludePattern 要排除的路由匹配符
|
||||
* @param fun 要执行的方法
|
||||
* @return /
|
||||
*/
|
||||
public static SaRouterStaff match(String pattern, String excludePattern, SaFunction fun) {
|
||||
return new SaRouterStaff().match(pattern, excludePattern, fun);
|
||||
@ -282,6 +285,7 @@ public class SaRouter {
|
||||
* @param pattern 路由匹配符
|
||||
* @param excludePattern 要排除的路由匹配符
|
||||
* @param fun 要执行的方法
|
||||
* @return /
|
||||
*/
|
||||
public static SaRouterStaff match(String pattern, String excludePattern, SaParamFunction<SaRouterStaff> fun) {
|
||||
return new SaRouterStaff().match(pattern, excludePattern, fun);
|
||||
|
@ -250,6 +250,7 @@ public class SaRouterStaff {
|
||||
* 路由匹配,如果匹配成功则执行认证函数
|
||||
* @param pattern 路由匹配符
|
||||
* @param fun 要执行的校验方法
|
||||
* @return /
|
||||
*/
|
||||
public SaRouterStaff match(String pattern, SaFunction fun) {
|
||||
return this.match(pattern).check(fun);
|
||||
@ -259,6 +260,7 @@ public class SaRouterStaff {
|
||||
* 路由匹配,如果匹配成功则执行认证函数
|
||||
* @param pattern 路由匹配符
|
||||
* @param fun 要执行的校验方法
|
||||
* @return /
|
||||
*/
|
||||
public SaRouterStaff match(String pattern, SaParamFunction<SaRouterStaff> fun) {
|
||||
return this.match(pattern).check(fun);
|
||||
@ -269,6 +271,7 @@ public class SaRouterStaff {
|
||||
* @param pattern 路由匹配符
|
||||
* @param excludePattern 要排除的路由匹配符
|
||||
* @param fun 要执行的方法
|
||||
* @return /
|
||||
*/
|
||||
public SaRouterStaff match(String pattern, String excludePattern, SaFunction fun) {
|
||||
return this.match(pattern).notMatch(excludePattern).check(fun);
|
||||
@ -279,6 +282,7 @@ public class SaRouterStaff {
|
||||
* @param pattern 路由匹配符
|
||||
* @param excludePattern 要排除的路由匹配符
|
||||
* @param fun 要执行的方法
|
||||
* @return /
|
||||
*/
|
||||
public SaRouterStaff match(String pattern, String excludePattern, SaParamFunction<SaRouterStaff> fun) {
|
||||
return this.match(pattern).notMatch(excludePattern).check(fun);
|
||||
|
@ -1619,7 +1619,7 @@ public class StpLogic {
|
||||
* 判断:集合中是否包含指定元素(模糊匹配)
|
||||
* @param list 集合
|
||||
* @param element 元素
|
||||
* @return
|
||||
* @return /
|
||||
*/
|
||||
public boolean hasElement(List<String> list, String element) {
|
||||
return SaStrategy.me.hasElement.apply(list, element);
|
||||
|
@ -15,17 +15,16 @@ import cn.dev33.satoken.session.SaSession;
|
||||
* Sa-Token 策略对象
|
||||
* <p>
|
||||
* 此类统一定义框架内的一些关键性逻辑算法,方便开发者进行按需重写,例:
|
||||
* </p>
|
||||
* <pre>
|
||||
// SaStrategy全局单例,所有方法都用以下形式重写
|
||||
SaStrategy.me.setCreateToken((loginId, loginType) -> {
|
||||
SaStrategy.me.setCreateToken((loginId, loginType) -》 {
|
||||
// 自定义Token生成的算法
|
||||
return "xxxx";
|
||||
});
|
||||
* </pre>
|
||||
* </p>
|
||||
*
|
||||
* @author kong
|
||||
* @param <T>
|
||||
*
|
||||
*/
|
||||
@SuppressWarnings("deprecation")
|
||||
|
@ -157,6 +157,10 @@ StpUtil.switchTo(10044); // 将当前会话身份临时切换
|
||||
- **[ TLog ]**:[ 一个轻量级的分布式日志标记追踪神器](https://gitee.com/dromara/TLog)
|
||||
|
||||
|
||||
## 贡献者名单
|
||||
感谢每一个为 Sa-Token 贡献代码的小伙伴
|
||||
|
||||
[![Giteye chart](https://chart.giteye.net/gitee/dromara/sa-token/CGZ7GT8E.png)](https://giteye.net/chart/CGZ7GT8E)
|
||||
|
||||
## 交流群
|
||||
QQ交流群:1群:1002350610 (已满) 、
|
||||
|
@ -145,6 +145,8 @@ StpUtil.hasPermission("index.html"); // false
|
||||
|
||||
思路:如此精确的范围控制只依赖后端已经难以完成,此时需要前端进行一定的逻辑判断
|
||||
|
||||
如果是前后端一体项目,可以参考:[Thymeleaf 标签方言](/plugin/thymeleaf-extend),如果是前后端分离项目,则:
|
||||
|
||||
1. 在登录时,把当前账号拥有的所有权限码一次性返回给前端
|
||||
2. 前端将权限码集合保存在`localStorage`或其它全局状态管理对象中
|
||||
3. 在需要权限控制的按钮上,使用js进行逻辑判断,例如在`vue`框架中我们可以使用如下写法:
|
||||
|
Loading…
Reference in New Issue
Block a user