| | |
| | | |
| | | import com.vci.ubcs.code.service.IPasswordFreeLoginService; |
| | | import io.swagger.annotations.Api; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springblade.core.log.exception.ServiceException; |
| | | import org.springblade.core.tool.api.R; |
| | | import org.springframework.beans.factory.annotation.Value; |
| | | import org.springframework.stereotype.Controller; |
| | | import org.springframework.ui.Model; |
| | | import org.springframework.web.bind.annotation.*; |
| | | import org.springframework.web.servlet.ModelAndView; |
| | | import org.springframework.web.servlet.mvc.support.RedirectAttributes; |
| | | import org.springframework.web.servlet.view.RedirectView; |
| | | |
| | | import javax.annotation.Resource; |
| | | import javax.servlet.ServletException; |
| | | import javax.servlet.http.HttpServletRequest; |
| | | import javax.servlet.http.HttpServletResponse; |
| | | import javax.servlet.http.HttpSession; |
| | | |
| | | import java.io.IOException; |
| | | |
| | | import static com.vci.ubcs.starter.util.AESUtils.aesDecrypt; |
| | | import static com.vci.ubcs.starter.util.AESUtils.aesEncrypt; |
| | | |
| | | /** |
| | | * @author ludc |
| | |
| | | @RestController |
| | | @RequestMapping("/passwordFree") |
| | | @Api(value = "免密登录接口", tags = "免密登录接口") |
| | | @Slf4j |
| | | public class PasswordFreeLoginController { |
| | | |
| | | // 别人调用我们的单点重定向的地址 |
| | | @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") |
| | | public R passwordFreeLogin(@RequestParam String username, HttpServletRequest request) { |
| | | public R passwordFreeLogin(@RequestParam("userName") String username, HttpServletRequest request) { |
| | | boolean status; |
| | | try { |
| | | status = passwordFreeLoginService.passwordFreeLogin(username,request); |
| | | status = passwordFreeLoginService.pwdFreeLoginByBoolean(username,request); |
| | | }catch (Exception e){ |
| | | throw new ServiceException("免密登录获取token失败:"+e.getMessage()); |
| | | } |
| | | return R.status(status); |
| | | } |
| | | |
| | | /** |
| | | * 单点登录 |
| | | * @param empCode |
| | | * @return |
| | | * @throws Exception |
| | | */ |
| | | @GetMapping("/ssoLogin") |
| | | public String oaSsoLogin(@RequestParam("empCode") String empCode){ |
| | | String token; |
| | | try { |
| | | token = passwordFreeLoginService.ssoFreeLogin(empCode); |
| | | }catch (Exception e){ |
| | | throw new ServiceException("单点登录获取token失败:"+e.getMessage()); |
| | | } |
| | | 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; |
| | | } |
| | | |
| | | } |