# security-starter **Repository Path**: enbool/security-starter ## Basic Information - **Project Name**: security-starter - **Description**: spring security oauth2 快速开发starter - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2020-06-15 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # security-starter #### 介绍 spring security oauth2 快速开发starter #### 软件架构 软件架构说明 #### 安装教程 1. 下载源码 2. mvn install 到本地仓库 3. 新项目添加依赖: cn.com.artemis security-starter 1.0.0 4. 配置OAuth2,参见OAuth2Properties #### 使用说明 application.yml app: security: oauth2: jwt-signing-key: store-type: jwt use-rbac: false clients: - client-id: client-secret: access-token-validity-seconds: 720000 refresh-token-validity-seconds: 720000 @ApiOperation("手登录") @PostMapping("/login") ResultModel login(@RequestHeader("Authorization") String authorization, @RequestBody PhoneLoginForm form){ return userTemplate.loginByPhone(authorization, form); } public OAuth2AccessToken login(String username, String password) { User user = userService.findByUsername(username); ApiAssert.notNull(GueErrorCode.USERNAME_OR_PASSWORD_ERROR, user); ApiAssert.isTrue(GueErrorCode.USERNAME_OR_PASSWORD_ERROR, passwordEncoder.matches(password, user.getPassword())); log.info("{}登录系统", username); return user2Token(user); } private OAuth2AccessToken user2Token(String authorization, User user){ Authentication authentication = new UsernamePasswordAuthenticationToken(user, user.getPassword()); try { return grantTokenService.grant(authorization, authentication); } catch (IOException e) { log.error("未知异常", e); throw new GueException(GueErrorCode.IO_EXCEPTION); } } ##### 配置白名单 @Component public class WhiteListConfig implements WhiteList { @Override public String[] permitAll() { return new String[]{"/api/**"}; } @Override public String[] nonCheckPermission() { return new String[0]; } } ######若要使用spring security自带的接口(/auth/token)登录系统,需实现UserDetailsService。 ######若要使用RBAC进行权限控制,需要在配置文件里开启(use-rbac: true),并实现PermissionService。 #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request