ludc
2023-09-25 250446535c918d7884d1cb3fa6ad11638b55d022
代码提交
已修改4个文件
77 ■■■■■ 文件已修改
Source/UBCS-WEB/src/page/login/sso.vue 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/PasswordFreeLoginController.java 40 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/IPasswordFreeLoginService.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/PasswordFreeLoginServiceImpl.java 31 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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;
    }