| | |
| | | |
| | | 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 |
| | | * @date 2023/9/12 9:07 |
| | | */ |
| | | @RestController |
| | | @Controller |
| | | @RequestMapping("/passwordFree") |
| | | @Api(value = "免密登录接口", tags = "免密登录接口") |
| | | @Slf4j |
| | | public class PasswordFreeLoginController { |
| | | |
| | | // 别人调用我们的单点重定向的地址 |
| | | @Value("${password-free.sso-redirect-addr}") |
| | | private String ssoRedirectAddr; |
| | | |
| | | @Resource |
| | | private IPasswordFreeLoginService passwordFreeLoginService; |
| | | |
| | | @PostMapping("/login") |
| | | public R passwordFreeLogin(@RequestParam String username, HttpServletRequest request) { |
| | | @ResponseBody |
| | | 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 request |
| | | * @return |
| | | * @throws Exception |
| | | */ |
| | | @GetMapping("/ssoLogin") |
| | | public String oaSsoLogin(HttpServletRequest request,HttpServletResponse response, RedirectAttributes redirectAttributes) throws IOException, ServletException { |
| | | String token; |
| | | try { |
| | | token = passwordFreeLoginService.ssoFreeLogin(request); |
| | | }catch (Exception e){ |
| | | throw new ServiceException("单点登录获取token失败:"+e.getMessage()); |
| | | } |
| | | redirectAttributes.addFlashAttribute("tokenInfo",token); |
| | | return "redirect:"+ssoRedirectAddr; |
| | | } |
| | | |
| | | } |