jap-simple-spring-boot-starter 模块使用帮助
# jap-simple-spring-boot-starter
为JustAuth Plus (opens new window) 的 simple 授权策略开发的Spring Boot Starter依赖。
可访问本starter的demo (opens new window) ,包含较为详尽的调用流程和相关配置说明。
# 开源仓库地址:
# 快速开始
# 引入依赖
在你项目的 pom.xml 文件中添加jap-simple的starter的maven依赖:
<dependency>
<groupId>xyz.dong6662.jap.spring.boot</groupId>
<artifactId>jap-simple-spring-boot-starter</artifactId>
<version>1.0.0</version>
</dependency>
1
2
3
4
5
2
3
4
5
# application.properties中配置
首先在 application.properties 文件中完成一些基本配置,这些配置信息所有授权策略均会使用到:
# 基础配置
# 如果启启用了sso,则需要对sso进行一些配置
jap.basic.sso=false
jap.basic.cache-expire-time=12
jap.basic.token-expire-time=12
# sso
jap.sso.cookie-domain=xxx
jap.sso.cookie-max-age=xxx
jap.sso.cookie-name=xxx
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
然后,为simple策略添加它的配置信息,但大多数情况下采用默认即可:
# simple策略
# 通常情况采用默认配置
jap.simple.username-field=username
jap.simple.password-field=password
jap.simple.remember-me-field=rememberMe
jap.simple.remember-me-cookie-key=rememberMeCookieKey
# ...
1
2
3
4
5
6
7
2
3
4
5
6
7
# 实现JapUserService接口
与jap-simple实现JapUserService接口 (opens new window)不同的是,🎈你不仅需要为该实现类添加@Service
注解,还需要对该注解添加参数JapUserServiceType.SIMPLE
,表明这是simple策略的实现类:
@Service(JapUserServiceType.SIMPLE)//Service注解和必要的参数
public class SimpleUserServiceImpl implements JapUserService {
/**
* 模拟 DB 操作
*/
private static final List<JapUser> userDatas = new ArrayList<>();
static {
// 模拟数据库中的数据
userDatas.add(new JapUser().setUsername("jap").setPassword("jap").setUserId("jap"));
for (int i = 0; i < 10; i++) {
userDatas.add(new JapUser().setUsername("jap" + i).setPassword("jap" + i).setUserId(UUID.fastUUID().toString()));
}
}
@Override
public JapUser getByName(String username) {
return userDatas.stream()
.filter((user) -> user.getUsername().equals(username))
.findFirst()
.orElse(null);
}
@Override
public boolean validPassword(String password, JapUser user) {
return user.getPassword().equals(password);
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
当然,也可以在 application.properties 中指定simple策略的JapUserService
实现类,即指定该service的包全名(binary name):
jap.simple-user-service=xyz.dong6662.japspringbootstarterdemo.service.SimpleUserServiceImpl
1
# 实现Controller
@RestController
@RequestMapping("/simple")
public class SimpleController {
@Autowired
SimpleStrategy simpleStrategy;
@Autowired
SimpleProperties simpleProperties;
@RequestMapping(method = RequestMethod.GET, path = "/1")
public JapResponse simple2(HttpServletRequest request, HttpServletResponse response){
return simpleStrategy.authenticate(simpleProperties.getSimple(),request,response);
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
# 使用JapTemplate
这是为了简化四种授权策略的调用而开发的starter依赖。只需在引入了jap-simple的maven依赖的基础上,引入 JapTemplate的依赖便可使用:
<dependency>
<groupId>xyz.dong6662.jap.spring.boot</groupId>
<artifactId>jap-spring-boot-starter-template</artifactId>
<version>1.0.0</version>
</dependency>
1
2
3
4
5
2
3
4
5
这样,在Controller中的授权代码只需一行便可完成授权:
@RestController
@RequestMapping("/simple")
public class SimpleController {
@Autowired
JapTemplate japTemplate;
@RequestMapping(method = RequestMethod.GET, path = "/2")
public JapResponse simple1() {
return japTemplate.opsForSimple().authenticate();// 进行授权
}
}
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
编辑 (opens new window)
Last Updated: 2021/10/21, 17:48:43