Source/UBCS-WEB/src/page/login/sso.vue
@@ -18,6 +18,8 @@ }, methods: { onLoad() { console.log(info); const loading = this.$loading({ lock: true, text: 'Loading', Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/PasswordFreeLoginController.java
@@ -28,7 +28,7 @@ * @author ludc * @date 2023/9/12 9:07 */ @Controller @RestController @RequestMapping("/passwordFree") @Api(value = "免密登录接口", tags = "免密登录接口") @Slf4j @@ -38,11 +38,16 @@ @Value("${password-free.sso-redirect-addr}") private String ssoRedirectAddr; @Value("${password-free.client-id:a104c4fd2f0e4958}") private String clientId;//应用ID @Value("${password-free.secret-key:9fbd170bd83eb869}") private String secretKey;//应用秘钥 @Resource private IPasswordFreeLoginService passwordFreeLoginService; @PostMapping("/login") @ResponseBody public R passwordFreeLogin(@RequestParam("userName") String username, HttpServletRequest request) { boolean status; try { @@ -55,20 +60,41 @@ /** * 单点登录 * @param request * @param empCode * @return * @throws Exception */ @GetMapping("/ssoLogin") public String oaSsoLogin(HttpServletRequest request,HttpServletResponse response, RedirectAttributes redirectAttributes) throws IOException, ServletException { public String oaSsoLogin(@RequestParam("empCode") String empCode){ String token; try { token = passwordFreeLoginService.ssoFreeLogin(request); token = passwordFreeLoginService.ssoFreeLogin(empCode); }catch (Exception e){ throw new ServiceException("单点登录获取token失败:"+e.getMessage()); } redirectAttributes.addFlashAttribute("tokenInfo",token); return "redirect:"+ssoRedirectAddr; return token; } /** * 单点登录 * @param empCode * @return * @throws Exception */ @GetMapping("/test") public String test(@RequestParam("empCode") String empCode){ String enStr2; try { // 加密 String pwdfree = aesEncrypt("pwdfree", secretKey); String pwdfree2 = aesEncrypt(pwdfree, clientId); // 解密 String enStr1 = aesDecrypt(empCode, secretKey); enStr2 = aesDecrypt(enStr1, clientId); }catch (Exception e){ throw new ServiceException("单点登录获取token失败:"+e.getMessage()); } return enStr2; } } Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/IPasswordFreeLoginService.java
@@ -37,10 +37,10 @@ /** * 单点登录 * @param servletRequest * @param empCode * @return * @throws Exception */ String ssoFreeLogin(ServletRequest servletRequest) throws Exception; String ssoFreeLogin(String empCode) throws Exception; } Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/PasswordFreeLoginServiceImpl.java
@@ -66,6 +66,7 @@ @Value("${password-free.secret-key:9fbd170bd83eb869}") private String secretKey;//应用秘钥 @Autowired private BladeRedis bladeRedis; @@ -161,26 +162,26 @@ /** * 单点登录 * @param servletRequest * @param empCode * @return * @throws Exception */ @Override public String ssoFreeLogin(ServletRequest servletRequest) throws Exception { HttpServletRequest request = (HttpServletRequest) servletRequest; // String empCode = Func.isEmpty(request.getHeader("empCode")) ? request.getParameter("empCode"):request.getHeader("empCode"); String empCode = "test"; // if(Func.isBlank(content)){ // throw new ServiceException("未获取到empCode参数"); // } //加密 String str1 = aesEncrypt(empCode, clientId); String str2 = aesEncrypt(str1, secretKey); String enStr1 = aesDecrypt(str2, secretKey); String enStr2 = aesDecrypt(enStr1, clientId); public String ssoFreeLogin(String empCode) throws Exception { if(Func.isBlank(empCode)){ throw new ServiceException("未获取到empCode参数"); } String enStr2; try { /*String pwdfree = aesEncrypt("pwdfree", secretKey); String s = aesEncrypt(pwdfree, clientId);*/ // String enStr1 = aesDecrypt(empCode, secretKey); // enStr2 = aesDecrypt(enStr1, clientId); }catch (Exception e){ throw new ServiceException("empCode参数解密失败!原因:"+e.getCause()); } // 解密 log.debug("单点登录参数解密后:"+enStr2); //log.debug("单点登录参数解密后:"+enStr2); String token = this.passwordFreeLogin("pwdfree"); return token; }