mirror of https://gitee.com/y_project/RuoYi.git
避免ehcache配置文件一直被占用,无法完全销毁项目重新部署
parent
0a0a6982f7
commit
af64be2a31
|
@ -85,20 +85,19 @@ body.signin {
|
|||
}
|
||||
}
|
||||
/*
|
||||
登录界面check样式
|
||||
*/
|
||||
登录界面check样式
|
||||
*/
|
||||
.checkbox-custom {
|
||||
position: relative;
|
||||
padding: 0 15px 0 25px;
|
||||
margin-bottom: 7px;
|
||||
margin-top: 0;
|
||||
display: inline-block;
|
||||
}
|
||||
/*
|
||||
将初始的checkbox的样式改变
|
||||
将初始的checkbox的样式改变
|
||||
*/
|
||||
.checkbox-custom input[type="checkbox"] {
|
||||
opacity: 0;/*将初始的checkbox隐藏起来*/
|
||||
opacity: 0; /*将初始的checkbox隐藏起来*/
|
||||
position: absolute;
|
||||
cursor: pointer;
|
||||
z-index: 2;
|
||||
|
@ -107,7 +106,7 @@ body.signin {
|
|||
left: 3px;
|
||||
}
|
||||
/*
|
||||
设计新的checkbox,位置
|
||||
设计新的checkbox,位置
|
||||
*/
|
||||
.checkbox-custom label:before {
|
||||
content: '';
|
||||
|
@ -123,7 +122,7 @@ body.signin {
|
|||
background: #fff;
|
||||
}
|
||||
/*
|
||||
点击初始的checkbox,将新的checkbox关联起来
|
||||
点击初始的checkbox,将新的checkbox关联起来
|
||||
*/
|
||||
.checkbox-custom input[type="checkbox"]:checked +label:after {
|
||||
position: absolute;
|
||||
|
@ -142,7 +141,7 @@ body.signin {
|
|||
.checkbox-custom label {
|
||||
cursor: pointer;
|
||||
line-height: 1.2;
|
||||
font-weight: normal;/*改变了rememberme的字体*/
|
||||
font-weight: normal; /*改变了rememberme的字体*/
|
||||
margin-bottom: 0;
|
||||
text-align: left;
|
||||
}
|
|
@ -1 +1 @@
|
|||
html{height:100%}body.signin{height:auto;background:url(../img/login-background.jpg) no-repeat center fixed;-webkit-background-size:cover;-moz-background-size:cover;-o-background-size:cover;background-size:cover;color:rgba(255,255,255,.95)}.signinpanel{width:750px;margin:10% auto 0}.signinpanel .logopanel{float:none;width:auto;padding:0;background:0}.signinpanel .signin-info ul{list-style:none;padding:0;margin:20px 0}.signinpanel .form-control{display:block;margin-top:15px}.signinpanel .uname{background:#fff url(../img/user.png) no-repeat 95% center;color:#333}.signinpanel .pword{background:#fff url(../img/locked.png) no-repeat 95% center;color:#333}.signinpanel .code{background:#fff no-repeat 95% center;color:#333;margin:0 0 15px 0}.signinpanel .btn{margin-top:15px}.signinpanel form{background:rgba(255,255,255,.2);border:1px solid rgba(255,255,255,.3);-moz-box-shadow:0 3px 0 rgba(12,12,12,.03);-webkit-box-shadow:0 3px 0 rgba(12,12,12,.03);box-shadow:0 3px 0 rgba(12,12,12,.03);-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;padding:30px}.signup-footer{border-top:solid 1px rgba(255,255,255,.3);margin:20px 0;padding-top:15px}@media screen and (max-width:768px){.signinpanel,.signuppanel{margin:0 auto;width:420px!important;padding:20px}.signinpanel form{margin-top:20px}.signup-footer,.signuppanel .form-control{margin-bottom:10px}.signup-footer .pull-left,.signup-footer .pull-right{float:none!important;text-align:center}.signinpanel .signin-info ul{display:none}}@media screen and (max-width:320px){.signinpanel,.signuppanel{margin:0 20px;width:auto}}.checkbox-custom{position:relative;padding:0 15px 0 25px;margin-bottom:7px;margin-top:0;display:inline-block}.checkbox-custom input[type="checkbox"]{opacity:0;position:absolute;cursor:pointer;z-index:2;margin:-6px 0 0 0;top:50%;left:3px}.checkbox-custom label:before{content:'';position:absolute;top:50%;left:0;margin-top:-9px;width:18px;height:17px;display:inline-block;border-radius:2px;border:1px solid #bbb;background:#fff}.checkbox-custom input[type="checkbox"]:checked+label:after{position:absolute;display:inline-block;font-family:'Glyphicons Halflings';content:"\e013";top:42%;left:3px;margin-top:-5px;font-size:11px;line-height:1;width:16px;height:16px;color:#333}.checkbox-custom label{cursor:pointer;line-height:1.2;font-weight:normal;margin-bottom:0;text-align:left}
|
||||
html{height:100%}body.signin{height:auto;background:url(../img/login-background.jpg) no-repeat center fixed;-webkit-background-size:cover;-moz-background-size:cover;-o-background-size:cover;background-size:cover;color:rgba(255,255,255,.95)}.signinpanel{width:750px;margin:10% auto 0}.signinpanel .logopanel{float:none;width:auto;padding:0;background:0}.signinpanel .signin-info ul{list-style:none;padding:0;margin:20px 0}.signinpanel .form-control{display:block;margin-top:15px}.signinpanel .uname{background:#fff url(../img/user.png) no-repeat 95% center;color:#333}.signinpanel .pword{background:#fff url(../img/locked.png) no-repeat 95% center;color:#333}.signinpanel .code{background:#fff no-repeat 95% center;color:#333;margin:0 0 15px 0}.signinpanel .btn{margin-top:15px}.signinpanel form{background:rgba(255,255,255,.2);border:1px solid rgba(255,255,255,.3);-moz-box-shadow:0 3px 0 rgba(12,12,12,.03);-webkit-box-shadow:0 3px 0 rgba(12,12,12,.03);box-shadow:0 3px 0 rgba(12,12,12,.03);-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;padding:30px}.signup-footer{border-top:solid 1px rgba(255,255,255,.3);margin:20px 0;padding-top:15px}@media screen and (max-width:768px){.signinpanel,.signuppanel{margin:0 auto;width:420px!important;padding:20px}.signinpanel form{margin-top:20px}.signup-footer,.signuppanel .form-control{margin-bottom:10px}.signup-footer .pull-left,.signup-footer .pull-right{float:none!important;text-align:center}.signinpanel .signin-info ul{display:none}}@media screen and (max-width:320px){.signinpanel,.signuppanel{margin:0 20px;width:auto}}.checkbox-custom{position:relative;padding:0 15px 0 25px;margin-bottom:7px;display:inline-block}.checkbox-custom input[type="checkbox"]{opacity:0;position:absolute;cursor:pointer;z-index:2;margin:-6px 0 0 0;top:50%;left:3px}.checkbox-custom label:before{content:'';position:absolute;top:50%;left:0;margin-top:-9px;width:18px;height:17px;display:inline-block;border-radius:2px;border:1px solid #bbb;background:#fff}.checkbox-custom input[type="checkbox"]:checked+label:after{position:absolute;display:inline-block;font-family:'Glyphicons Halflings';content:"\e013";top:42%;left:3px;margin-top:-5px;font-size:11px;line-height:1;width:16px;height:16px;color:#333}.checkbox-custom label{cursor:pointer;line-height:1.2;font-weight:normal;margin-bottom:0;text-align:left}
|
|
@ -59,7 +59,7 @@
|
|||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="checkbox-custom" th:class="${captchaEnabled==false}? 'm-t'">
|
||||
<div class="checkbox-custom" th:classappend="${captchaEnabled==false} ? 'm-t'">
|
||||
<input type="checkbox" id="rememberme" name="rememberme"> <label for="rememberme">记住我</label>
|
||||
</div>
|
||||
<button class="btn btn-success btn-block" id="btnSubmit" data-loading="正在验证登录,请稍后...">登录</button>
|
||||
|
|
|
@ -1,10 +1,16 @@
|
|||
package com.ruoyi.framework.config;
|
||||
|
||||
import java.io.ByteArrayInputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.Map;
|
||||
import javax.servlet.Filter;
|
||||
import org.apache.commons.io.IOUtils;
|
||||
import org.apache.shiro.cache.ehcache.EhCacheManager;
|
||||
import org.apache.shiro.codec.Base64;
|
||||
import org.apache.shiro.config.ConfigurationException;
|
||||
import org.apache.shiro.io.ResourceUtils;
|
||||
import org.apache.shiro.mgt.SecurityManager;
|
||||
import org.apache.shiro.spring.security.interceptor.AuthorizationAttributeSourceAdvisor;
|
||||
import org.apache.shiro.spring.web.ShiroFilterFactoryBean;
|
||||
|
@ -87,7 +93,7 @@ public class ShiroConfig
|
|||
EhCacheManager em = new EhCacheManager();
|
||||
if (StringUtils.isNull(cacheManager))
|
||||
{
|
||||
em.setCacheManagerConfigFile("classpath:ehcache/ehcache-shiro.xml");
|
||||
em.setCacheManager(new net.sf.ehcache.CacheManager(getCacheManagerConfigFileInputStream()));
|
||||
return em;
|
||||
}
|
||||
else
|
||||
|
@ -97,6 +103,31 @@ public class ShiroConfig
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 返回配置文件流 避免ehcache配置文件一直被占用,无法完全销毁项目重新部署
|
||||
*/
|
||||
protected InputStream getCacheManagerConfigFileInputStream()
|
||||
{
|
||||
String configFile = "classpath:ehcache/ehcache-shiro.xml";
|
||||
InputStream inputStream = null;
|
||||
try
|
||||
{
|
||||
inputStream = ResourceUtils.getInputStreamForPath(configFile);
|
||||
byte[] b = IOUtils.toByteArray(inputStream);
|
||||
InputStream in = new ByteArrayInputStream(b);
|
||||
return in;
|
||||
}
|
||||
catch (IOException e)
|
||||
{
|
||||
throw new ConfigurationException(
|
||||
"Unable to obtain input stream for cacheManagerConfigFile [" + configFile + "]", e);
|
||||
}
|
||||
finally
|
||||
{
|
||||
IOUtils.closeQuietly(inputStream);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 自定义Realm
|
||||
*/
|
||||
|
|
Loading…
Reference in New Issue