支持配置是否开启记住我功能
parent
89719f0570
commit
0606663fe8
|
@ -1,5 +1,6 @@
|
||||||
package com.ruoyi.web.controller.common;
|
package com.ruoyi.web.controller.common;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
@ -103,9 +104,10 @@ public class CommonController
|
||||||
{
|
{
|
||||||
// 上传文件路径
|
// 上传文件路径
|
||||||
String filePath = RuoYiConfig.getUploadPath();
|
String filePath = RuoYiConfig.getUploadPath();
|
||||||
List<String> fileNames = new ArrayList<>();
|
List<String> fileNames = new ArrayList<String>();
|
||||||
List<String> urls = new ArrayList<>();
|
List<String> urls = new ArrayList<String>();
|
||||||
for (MultipartFile file : files) {
|
for (MultipartFile file : files)
|
||||||
|
{
|
||||||
// 上传并返回新文件名称
|
// 上传并返回新文件名称
|
||||||
String fileName = FileUploadUtils.upload(filePath, file);
|
String fileName = FileUploadUtils.upload(filePath, file);
|
||||||
String url = serverConfig.getUrl() + fileName;
|
String url = serverConfig.getUrl() + fileName;
|
||||||
|
|
|
@ -6,7 +6,10 @@ import org.apache.shiro.SecurityUtils;
|
||||||
import org.apache.shiro.authc.AuthenticationException;
|
import org.apache.shiro.authc.AuthenticationException;
|
||||||
import org.apache.shiro.authc.UsernamePasswordToken;
|
import org.apache.shiro.authc.UsernamePasswordToken;
|
||||||
import org.apache.shiro.subject.Subject;
|
import org.apache.shiro.subject.Subject;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
import org.springframework.stereotype.Controller;
|
import org.springframework.stereotype.Controller;
|
||||||
|
import org.springframework.ui.ModelMap;
|
||||||
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
import org.springframework.web.bind.annotation.PostMapping;
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
import org.springframework.web.bind.annotation.ResponseBody;
|
import org.springframework.web.bind.annotation.ResponseBody;
|
||||||
|
@ -14,6 +17,7 @@ import com.ruoyi.common.core.controller.BaseController;
|
||||||
import com.ruoyi.common.core.domain.AjaxResult;
|
import com.ruoyi.common.core.domain.AjaxResult;
|
||||||
import com.ruoyi.common.utils.ServletUtils;
|
import com.ruoyi.common.utils.ServletUtils;
|
||||||
import com.ruoyi.common.utils.StringUtils;
|
import com.ruoyi.common.utils.StringUtils;
|
||||||
|
import com.ruoyi.framework.web.service.ConfigService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 登录验证
|
* 登录验证
|
||||||
|
@ -23,15 +27,27 @@ import com.ruoyi.common.utils.StringUtils;
|
||||||
@Controller
|
@Controller
|
||||||
public class SysLoginController extends BaseController
|
public class SysLoginController extends BaseController
|
||||||
{
|
{
|
||||||
|
/**
|
||||||
|
* 是否开启记住我功能
|
||||||
|
*/
|
||||||
|
@Value("${shiro.rememberMe.enabled: false}")
|
||||||
|
private boolean rememberMe;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private ConfigService configService;
|
||||||
|
|
||||||
@GetMapping("/login")
|
@GetMapping("/login")
|
||||||
public String login(HttpServletRequest request, HttpServletResponse response)
|
public String login(HttpServletRequest request, HttpServletResponse response, ModelMap mmap)
|
||||||
{
|
{
|
||||||
// 如果是Ajax请求,返回Json字符串。
|
// 如果是Ajax请求,返回Json字符串。
|
||||||
if (ServletUtils.isAjaxRequest(request))
|
if (ServletUtils.isAjaxRequest(request))
|
||||||
{
|
{
|
||||||
return ServletUtils.renderString(response, "{\"code\":\"1\",\"msg\":\"未登录或登录超时。请重新登录\"}");
|
return ServletUtils.renderString(response, "{\"code\":\"1\",\"msg\":\"未登录或登录超时。请重新登录\"}");
|
||||||
}
|
}
|
||||||
|
// 是否开启记住我
|
||||||
|
mmap.put("isRemembered", rememberMe);
|
||||||
|
// 是否开启用户注册
|
||||||
|
mmap.put("isAllowRegister", configService.getKey("sys.account.registerUser"));
|
||||||
return "login";
|
return "login";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -120,6 +120,9 @@ shiro:
|
||||||
maxSession: -1
|
maxSession: -1
|
||||||
# 踢出之前登录的/之后登录的用户,默认踢出之前登录的用户
|
# 踢出之前登录的/之后登录的用户,默认踢出之前登录的用户
|
||||||
kickoutAfter: false
|
kickoutAfter: false
|
||||||
|
rememberMe:
|
||||||
|
# 是否开启记住我
|
||||||
|
enabled: true
|
||||||
|
|
||||||
# 防止XSS攻击
|
# 防止XSS攻击
|
||||||
xss:
|
xss:
|
||||||
|
|
|
@ -37,7 +37,7 @@
|
||||||
<li><i class="fa fa-arrow-circle-o-right m-r-xs"></i> Thymeleaf</li>
|
<li><i class="fa fa-arrow-circle-o-right m-r-xs"></i> Thymeleaf</li>
|
||||||
<li><i class="fa fa-arrow-circle-o-right m-r-xs"></i> Bootstrap</li>
|
<li><i class="fa fa-arrow-circle-o-right m-r-xs"></i> Bootstrap</li>
|
||||||
</ul>
|
</ul>
|
||||||
<strong th:if="${@config.getKey('sys.account.registerUser')}">还没有账号? <a th:href="@{/register}">立即注册»</a></strong>
|
<strong th:if="${isAllowRegister}">还没有账号? <a th:href="@{/register}">立即注册»</a></strong>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-sm-5">
|
<div class="col-sm-5">
|
||||||
|
@ -56,7 +56,7 @@
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="checkbox-custom" th:classappend="${captchaEnabled==false} ? 'm-t'">
|
<div class="checkbox-custom" th:if="${isRemembered}" th:classappend="${captchaEnabled==false} ? 'm-t'">
|
||||||
<input type="checkbox" id="rememberme" name="rememberme"> <label for="rememberme">记住我</label>
|
<input type="checkbox" id="rememberme" name="rememberme"> <label for="rememberme">记住我</label>
|
||||||
</div>
|
</div>
|
||||||
<button class="btn btn-success btn-block" id="btnSubmit" data-loading="正在验证登录,请稍后...">登录</button>
|
<button class="btn btn-success btn-block" id="btnSubmit" data-loading="正在验证登录,请稍后...">登录</button>
|
||||||
|
|
|
@ -123,6 +123,12 @@ public class ShiroConfig
|
||||||
@Value("${shiro.user.unauthorizedUrl}")
|
@Value("${shiro.user.unauthorizedUrl}")
|
||||||
private String unauthorizedUrl;
|
private String unauthorizedUrl;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 是否开启记住我功能
|
||||||
|
*/
|
||||||
|
@Value("${shiro.rememberMe.enabled: false}")
|
||||||
|
private boolean rememberMe;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 缓存管理器 使用Ehcache实现
|
* 缓存管理器 使用Ehcache实现
|
||||||
*/
|
*/
|
||||||
|
@ -236,7 +242,7 @@ public class ShiroConfig
|
||||||
// 设置realm.
|
// 设置realm.
|
||||||
securityManager.setRealm(userRealm);
|
securityManager.setRealm(userRealm);
|
||||||
// 记住我
|
// 记住我
|
||||||
securityManager.setRememberMeManager(rememberMeManager());
|
securityManager.setRememberMeManager(rememberMe ? rememberMeManager() : null);
|
||||||
// 注入缓存管理器;
|
// 注入缓存管理器;
|
||||||
securityManager.setCacheManager(getEhCacheManager());
|
securityManager.setCacheManager(getEhCacheManager());
|
||||||
// session管理器
|
// session管理器
|
||||||
|
|
Loading…
Reference in New Issue