| | |
| | | package com.xiaopeng.common.security.handler; |
| | | |
| | | import com.alibaba.fastjson2.JSON; |
| | | import com.alibaba.fastjson2.JSONObject; |
| | | import com.fasterxml.jackson.databind.JsonNode; |
| | | import com.fasterxml.jackson.databind.ObjectMapper; |
| | | import com.xiaopeng.common.core.constant.HttpStatus; |
| | |
| | | import com.xiaopeng.common.core.utils.StringUtils; |
| | | import com.xiaopeng.common.core.web.domain.AjaxResult; |
| | | import feign.FeignException; |
| | | import org.apache.commons.lang3.RandomStringUtils; |
| | | import org.slf4j.Logger; |
| | | import org.slf4j.LoggerFactory; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | |
| | | import org.springframework.web.multipart.MaxUploadSizeExceededException; |
| | | |
| | | import javax.servlet.http.HttpServletRequest; |
| | | import java.util.UUID; |
| | | |
| | | /** |
| | | * 全局异常处理器 |
| | |
| | | private String maxFileSize; |
| | | @Value("${spring.servlet.multipart.max-request-size:100MB}") |
| | | private String maxRequestSize; |
| | | |
| | | @Value("${xiaopeng.xtiger.sso.issuer}") |
| | | private String issuer; |
| | | |
| | | @Value("${xiaopeng.xtiger.sso.appId}") |
| | | private String appId; |
| | | |
| | | @Value("${xiaopeng.xtiger.sso.serverHost}") |
| | | private String serverHost; |
| | | |
| | | @Autowired |
| | | private MessageSource messageSource; |
| | |
| | | public AjaxResult notLoginException(NotLoginException e, HttpServletRequest request) { |
| | | String requestURI = request.getRequestURI(); |
| | | log.error("请求地址'{}',登录校验失败'{}'", requestURI, e.getMessage()); |
| | | return AjaxResult.error(HttpStatus.UNAUTHORIZED, e.getMessage()); |
| | | String s = UUID.randomUUID().toString(); |
| | | String state1 = s.substring(0, 8) + s.substring(9, 13) + s.substring(14, 18) + s.substring(19, 23) + s.substring(24); |
| | | String s1 = UUID.randomUUID().toString(); |
| | | String state2 = s1.substring(0, 8) + s.substring(9, 13) + s.substring(14, 18) + s.substring(19, 23) + s.substring(24); |
| | | String nonce = RandomStringUtils.randomAlphanumeric(6); |
| | | JSONObject jsonObject = JSON.parseObject("{\n" + |
| | | " \"uid\": null,\n" + |
| | | " \"username\": null,\n" + |
| | | " \"authUrl\": \"" + issuer + "/oidc/auth?scope=openid+profile+offline_access+phone+email&response_type=code&redirect_uri=" + serverHost + "/ssoAuthSdk/callback&state=" + state1 + "&nonce=" + nonce + "&client_id=" + appId + "\",\n" + |
| | | " \"logoutUrl\": null,\n" + |
| | | " \"callbackUrl\": \"" + serverHost + "/ssoAuthSdk/callback?state=" + state2 + "\"\n" + |
| | | " }"); |
| | | return AjaxResult.error(HttpStatus.UNAUTHORIZED, e.getMessage(), jsonObject); |
| | | } |
| | | |
| | | /** |