main
黄海 1 year ago
parent 5391a3b0e8
commit 0ff569ada6

@ -24,10 +24,8 @@ import com.jfinal.plugin.activerecord.Record;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.UUID;
import java.util.*;
import java.util.stream.Collectors;
public class LoginPersonController extends Controller {
@ -41,9 +39,10 @@ public class LoginPersonController extends Controller {
* @param username
* @param password
* @param captcha
* @param roles roles
*/
@Before({POST.class})
public void doLogin(String username, String password, String captcha) {
public void doLogin(String username, String password, String captcha, String roles) {
JSONObject resultJson = new JSONObject();
if (StrKit.isBlank(captcha)) {
resultJson.put("success", false);
@ -178,6 +177,28 @@ public class LoginPersonController extends Controller {
renderJson(resultJson);
return;
}
//如果前台指定必须具备某些角色才能使用这个登录口的话
if (!StrKit.isBlank(roles)) {
//1、需要具备的角色
List<Integer> roleList = Arrays.stream(roles.split(","))
.map(Integer::parseInt) // 将字符串转换为整数
.collect(Collectors.toList()); // 收集成列表
//2、人员已有的角色
List<Integer> existRole = new ArrayList<>();
for (Record record : list) {
existRole.add(record.getInt("duties_id"));
}
//3、求交集
roleList.retainAll(existRole);
if (roleList.isEmpty()) {
resultJson.put("success", false);
resultJson.put("redirect", true);
resultJson.put("msg", "登录失败,当前登录页面要求指定角色人员才能登录成功!");
renderJson(resultJson);
return;
}
}
}
//防止用户攻击修改Cookie

Loading…
Cancel
Save