开发框架扩展能力
开发框架扩展能力
1.如何往登录用户对象中添加额外信息
创建自定义的UserEnhancer类,往用户对象的additionalInformation属性中添加自定义信息。
登录成功后用户session的用户对象中就会包含额外信息。
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
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.framework.backend.security.config.auth.UserEnhancer;
import com.framework.backend.security.entity.User;
import com.framework.backend.security.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import java.util.HashMap;
import java.util.Map;
public class CustomUserEnhancer implements UserEnhancer {
@Autowired UserService userService;
@Override
public User enhance(User user) {
QueryWrapper<User> queryWrapper = new QueryWrapper();
queryWrapper.lambda().eq(User::getId, user.getId());
User user1 = userService.getOne(queryWrapper);
Map<String, Object> info = new HashMap();
info.put("user1", user1);
info.put("info1", "infoA");
user.setAdditionalInformation(info);
return user;
}
}
1
2
3
4
5
6
7
8
9
10
11
import com.framework.backend.security.config.auth.UserEnhancer;
import org.springframework.context.annotation.Bean;
import org.springframework.stereotype.Component;
@Component
public class CustomUserEnhancerConfig {
@Bean
UserEnhancer userEnhancer() {
return new CustomUserEnhancer();
}
}
2.如何自定义用户密码验证规则
框架中的修改用户密码方法会调用自定义密码验证规则进行校验。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import com.framework.backend.security.config.password.PasswordCheck;
public class CustomPasswordCheck implements PasswordCheck {
@Override
public String getErrorMessage() {
return "密码长度不能小于5位";
}
@Override
public boolean check(String password) {
boolean result = true;
if (password.length() < 5) {
result = false;
}
return result;
}
}
1
2
3
4
5
6
7
8
9
10
11
import com.framework.backend.security.config.password.PasswordCheck;
import org.springframework.context.annotation.Bean;
@Component
public class CustomPasswordCheckConfig {
@Bean
PasswordCheck passwordCheck() {
return new CustomPasswordCheck();
}
}
本文由作者按照
CC BY 4.0
进行授权