提交 77c0878a 编写于 作者: 街头小贩's avatar 街头小贩

增加策略开启参数

上级 0e163567
package com.apobates.forum.thrones;
import com.apobates.forum.thrones.controller.helper.StrategyCondition;
import com.apobates.forum.attention.ImageStoreDomain;
import com.apobates.forum.core.ImageIOMeta;
import com.apobates.forum.member.storage.OnlineMemberStorage;
......@@ -15,6 +16,7 @@ import org.springframework.context.MessageSource;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.ComponentScan.Filter;
import org.springframework.context.annotation.Conditional;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.EnableAspectJAutoProxy;
import org.springframework.context.annotation.Import;
......@@ -72,8 +74,9 @@ public class ThronesFrontConfig implements WebMvcConfigurer {
public RegisteChannelInterceptor getRegisInter() {
return new RegisteChannelInterceptor();
}
//策略检测拦截器
//策略检测拦截器,以Env(site.strategy)来控制开启,默认开启
@Bean
@Conditional(StrategyCondition.class)
public StrategyInterceptorAdapter getStrategyInter(){
return new StrategyInterceptorAdapter();
}
......
......@@ -20,9 +20,9 @@ import org.springframework.web.servlet.support.RequestContextUtils;
* @since 20200827
*/
public class MemberInviteCodeInterceptorAdapter extends HandlerInterceptorAdapter {
//是否开启邀请码注册,1(开启)验证邀请码,0(禁用)不会验证邀请码
//是否开启邀请码注册,true[1](开启)验证邀请码,false[0](禁用)不会验证邀请码
@Value("${site.member.invite}")
private int activeInviteCode;
private String activeInviteCode;
private final static String KEY = "inviteCode";
private final static Logger logger = LoggerFactory.getLogger(MemberInviteCodeInterceptorAdapter.class);
......@@ -38,7 +38,7 @@ public class MemberInviteCodeInterceptorAdapter extends HandlerInterceptorAdapte
*/
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
if (activeInviteCode == 1 && request.getMethod().equalsIgnoreCase("post")) {
if (activeInviteCode.equalsIgnoreCase("true") && request.getMethod().equalsIgnoreCase("post")) {
String key = request.getSession().getAttribute("ICInputKey").toString();
String val = request.getParameter(key);
if (!Commons.isNotBlank(val)) {
......@@ -69,7 +69,7 @@ public class MemberInviteCodeInterceptorAdapter extends HandlerInterceptorAdapte
*/
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
if (activeInviteCode == 1) {
if (activeInviteCode.equalsIgnoreCase("true")) {
//String rndIN = Commons.randomAlphaNumeric(10);
request.getSession().setAttribute("ICInputKey", KEY);
modelAndView.addObject("ICInputActive", true);
......
......@@ -14,9 +14,9 @@ import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
* @since 20200529
*/
public class RegisteChannelInterceptor extends HandlerInterceptorAdapter {
// 是否允许注册,1(允许),0(关闭)
// 是否允许注册,true[1](允许),false[0](关闭)
@Value("${site.member.register}")
private int memberRegister;
private String memberRegister;
/**
* preHandle方法是进行处理器拦截用的,顾名思义,该方法将在Controller处理之前进行调用,
......@@ -30,7 +30,7 @@ public class RegisteChannelInterceptor extends HandlerInterceptorAdapter {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
// --------------------------------------------------注册通道检查
if (memberRegister != 1) {
if (memberRegister.equalsIgnoreCase("true")) {
// 禁止注册
throw new BorbidMemberRegisterException("会员注册功能已关闭");
}
......
package com.apobates.forum.thrones.controller.helper;
import org.springframework.context.annotation.Condition;
import org.springframework.context.annotation.ConditionContext;
import org.springframework.core.env.Environment;
import org.springframework.core.type.AnnotatedTypeMetadata;
/**
* 策略开启条件
*
* @author xiaofanku
* @since 20200829
*/
public class StrategyCondition implements Condition{
//https://stackoverflow.com/questions/29844271/conditional-spring-bean-creation
@Override
public boolean matches(ConditionContext cc, AnnotatedTypeMetadata atm) {
Environment env = cc.getEnvironment();
return null != env && "true".equals(env.getProperty("site.strategy"));
}
}
\ No newline at end of file
......@@ -23,8 +23,8 @@ jdbc.pool.testSql=SELECT 'x'
site.domain=http://center.test.com
site.defat.avtar=avatar
site.member.freeze=10
site.member.invite=0
site.member.register=1
site.member.invite=true
site.member.register=true
site.meta.description=In this tutorial we show a Spring MVC RSS ATOM Content Negotiation example. Using Content Negotiation we can serve different versions of a document (or resource) at the same URI.
# \u83b7\u53d6\u5931\u8d25\u65f6\u663e\u793a\u7684\u56fe\u7247
site.upload.fail=static/image/photo_album.jpg
......@@ -32,6 +32,7 @@ site.theme=/WEB-INF/layout/page/default/
site.appname=Orion jForum
site.logo=static/img/logo.svg
site.pageSize=20
site.strategy=true
site.session.spring.symbol=SUP-SESSION
site.session.spring.table=spring_session
site.cookieSymbol=fx_ost
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册