Commit a0f3b82d authored by 万成波's avatar 万成波

优化登录代码

parent b8553733
...@@ -5,6 +5,7 @@ import com.alibaba.fastjson2.JSON; ...@@ -5,6 +5,7 @@ import com.alibaba.fastjson2.JSON;
import com.tangguo.common.constant.Constants; import com.tangguo.common.constant.Constants;
import com.tangguo.common.core.domain.AjaxResult; import com.tangguo.common.core.domain.AjaxResult;
import com.tangguo.common.core.domain.entity.SysMenu; import com.tangguo.common.core.domain.entity.SysMenu;
import com.tangguo.common.core.domain.entity.SysRole;
import com.tangguo.common.core.domain.entity.SysUser; import com.tangguo.common.core.domain.entity.SysUser;
import com.tangguo.common.core.domain.model.LoginBody; import com.tangguo.common.core.domain.model.LoginBody;
import com.tangguo.common.core.domain.model.LoginUser; import com.tangguo.common.core.domain.model.LoginUser;
...@@ -125,7 +126,7 @@ public class SysLoginController { ...@@ -125,7 +126,7 @@ public class SysLoginController {
// 企微登录认证链接 // 企微登录认证链接
String authCode = bo.getCode(); String authCode = bo.getCode();
String baseUrl = this.serverConfig.getUrl(); String baseUrl = this.serverConfig.getUrl();
String redirectUrl = "http://test.tangguo.ren" + "/bbs/h5/pages/login/login/"; String redirectUrl = baseUrl + "/bbs/h5/pages/login/login/";
WxCpOAuth2Service oauth2Service = this.wxCpService.getOauth2Service(); WxCpOAuth2Service oauth2Service = this.wxCpService.getOauth2Service();
if (Objects.isNull(loginUser) && StrUtil.isBlank(authCode)) { if (Objects.isNull(loginUser) && StrUtil.isBlank(authCode)) {
String oauth2Url = oauth2Service.buildAuthorizationUrl(redirectUrl, null); String oauth2Url = oauth2Service.buildAuthorizationUrl(redirectUrl, null);
...@@ -156,7 +157,14 @@ public class SysLoginController { ...@@ -156,7 +157,14 @@ public class SysLoginController {
*/ */
@GetMapping("/bbs/mobile/user/profile") @GetMapping("/bbs/mobile/user/profile")
public AjaxResult getUserProfile() { public AjaxResult getUserProfile() {
final String bbsAdmin = "bbs_admin";
SysUser sysUser = SecurityUtils.getLoginUser().getUser(); SysUser sysUser = SecurityUtils.getLoginUser().getUser();
for (SysRole role : sysUser.getRoles()) {
if (bbsAdmin.equals(role.getRoleKey())) {
sysUser.setBbsAdmin(true);
break;
}
}
return AjaxResult.success(sysUser); return AjaxResult.success(sysUser);
} }
......
...@@ -127,6 +127,11 @@ public class SysUser extends BaseEntity { ...@@ -127,6 +127,11 @@ public class SysUser extends BaseEntity {
*/ */
private Long roleId; private Long roleId;
/**
* 是否论坛管理员
*/
private Boolean isBbsAdmin = Boolean.FALSE;
public SysUser() { public SysUser() {
} }
...@@ -139,6 +144,15 @@ public class SysUser extends BaseEntity { ...@@ -139,6 +144,15 @@ public class SysUser extends BaseEntity {
return userId != null && 1L == userId; return userId != null && 1L == userId;
} }
public boolean isBbsAdmin() {
return isBbsAdmin;
}
public void setBbsAdmin(Boolean bbsAdmin) {
isBbsAdmin = bbsAdmin;
}
public Long getUserId() { public Long getUserId() {
return userId; return userId;
} }
......
package com.tangguo.framework.security.handle; package com.tangguo.framework.security.handle;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSON;
import com.tangguo.common.constant.HttpStatus; import com.tangguo.common.constant.HttpStatus;
import com.tangguo.common.core.domain.AjaxResult; import com.tangguo.common.core.domain.AjaxResult;
import com.tangguo.common.utils.ServletUtils; import com.tangguo.common.utils.ServletUtils;
import com.tangguo.common.utils.StringUtils; import com.tangguo.common.utils.StringUtils;
import com.tangguo.framework.config.ServerConfig;
import me.chanjar.weixin.cp.api.WxCpOAuth2Service;
import me.chanjar.weixin.cp.api.WxCpService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.core.AuthenticationException; import org.springframework.security.core.AuthenticationException;
import org.springframework.security.web.AuthenticationEntryPoint; import org.springframework.security.web.AuthenticationEntryPoint;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
...@@ -13,6 +18,7 @@ import javax.servlet.http.HttpServletRequest; ...@@ -13,6 +18,7 @@ import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.io.IOException; import java.io.IOException;
import java.io.Serializable; import java.io.Serializable;
import java.util.Objects;
/** /**
* 认证失败处理类 返回未授权 * 认证失败处理类 返回未授权
...@@ -23,11 +29,28 @@ import java.io.Serializable; ...@@ -23,11 +29,28 @@ import java.io.Serializable;
public class AuthenticationEntryPointImpl implements AuthenticationEntryPoint, Serializable { public class AuthenticationEntryPointImpl implements AuthenticationEntryPoint, Serializable {
private static final long serialVersionUID = -8970718410437077606L; private static final long serialVersionUID = -8970718410437077606L;
@Autowired
private WxCpService wxCpService;
@Autowired
private ServerConfig serverConfig;
@Override @Override
public void commence(HttpServletRequest request, HttpServletResponse response, AuthenticationException e) public void commence(HttpServletRequest request, HttpServletResponse response, AuthenticationException e)
throws IOException { throws IOException {
String uri = request.getRequestURI();
int code = HttpStatus.UNAUTHORIZED; int code = HttpStatus.UNAUTHORIZED;
String msg = StringUtils.format("请求访问:{},认证失败,无法访问系统资源", request.getRequestURI()); if (uri.startsWith("/bbs/mobile")) {
String baseUrl = this.serverConfig.getUrl();
String redirectUrl = baseUrl + "/bbs/h5/pages/login/login/";
WxCpOAuth2Service oauth2Service = this.wxCpService.getOauth2Service();
String oauth2Url = oauth2Service.buildAuthorizationUrl(redirectUrl, null);
ServletUtils.renderString(response, JSON.toJSONString(AjaxResult.error(401, "身份认证失败", oauth2Url)));
} else {
String msg = StringUtils.format("请求访问:{},认证失败,无法访问系统资源", uri);
ServletUtils.renderString(response, JSON.toJSONString(AjaxResult.error(code, msg))); ServletUtils.renderString(response, JSON.toJSONString(AjaxResult.error(code, msg)));
} }
}
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment