📄 boardfilter.java
字号:
package com.ntsky.bbs.service;
import java.util.*;
import javax.servlet.http.*;
import org.apache.log4j.Logger ;
import com.ntsky.bbs.action.Constant;
import com.ntsky.bbs.service.*;
import com.ntsky.bbs.service.UserFilter;
import com.ntsky.bbs.service.TopicUtil;
import com.ntsky.bbs.service.Topic;
/**
* <p>Title: Ntsky OpenSource BBS</p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2004</p>
* <p>Company: WWW.FM880.COM</p>
* @author 姚君林
* @version 1.0
*/
public class BoardFilter{
private final static Logger logger = Logger.getLogger(BoardFilter.class);
private static BoardFilter boardFilter = null;
private BoardFilter(){}
public static synchronized BoardFilter getInstance(){
if(boardFilter == null){
boardFilter = new BoardFilter();
}
return boardFilter;
}
/**
* 模块检测
*/
public String filterBoard(HttpServletRequest request,HttpServletResponse response,HttpSession session){
int boaId = getId(request, "boaId");
logger.info("boaId = " + boaId);
//处理显示时候传值问题
if (boaId == 0) {
//boaId = Integer.parseInt((String) request.getAttribute("boaId"));
int topicId = getId(request, "topicId");
if(topicId == 0){
int repId = getId(request, "repId");
Reply reply = ReplyFactory.getInstance().listReplySin(repId);
topicId = reply.getRepTopicId();
}
logger.info("topicId = " + topicId);
Topic topic = TopicUtil.listTopic(topicId);
boaId = topic.getTopicBoaId();
}
Board board = getBoard(boaId);
UserFilter userFilter = UserFilter.getInstance();
User user = userFilter.getSessionUser(session, "user");
Map userRoleMap = userFilter.filterUser(session, request);
int boaState = board.getBoaState();
switch (boaState) {
//普通板块
case 1:
return "";
//会员板块
case 2:
//检测用户是否为空
checkUserLogon(response, request, user);
//嘉宾板块
case 3:
checkUserLogon(response, request, user);
return checkUserRole(user);
//加密板块
case 4:
//String boaPasswd = (String) session.getAttribute("boaPasswd");
return checkBoaPassword(board);
}
return "";
}
/**
* 获取boaId
*/
public int getId(HttpServletRequest request,String param){
String strId = request.getParameter(param);
if(strId==null){
return 0;
}
else{
return Integer.parseInt(strId);
}
}
/**
* 获取模板对象
*/
public Board getBoard(int boaId){
Board board = BoardUtil.showBoaInfo(boaId);
return board;
}
/**
* 模板的状态
*/
public int getBoardState(int boaId){
Board board = getBoard(boaId);
//该模块的权限
int boaState = board.getBoaState();
return boaState;
}
/**
* 用户检测
*/
public void checkUserLogon(HttpServletResponse response,HttpServletRequest request,User user){
try {
if (user == null) {
response.sendRedirect(request.getContextPath() + "/logon.html");
}
}
catch (Exception ex) {
logger.error("页面跳转错误.....");
}
}
/**
* 用户角色里是否有权限
*/
/*public String checkUserRole(Map usrRoleMap){
if (!usrRoleMap.containsValue("0")) {
return "<script>alert(\"sorry! 你不是嘉宾,不能进入!\")</script><script>javascript:history.back(-1)</script>";
}
return "";
}*/
public String checkUserRole(User user){
Proxy proxy = new UserProxy();
if(!proxy.isAction(user.getUsrRole(),34)){
return "<script>alert(\"sorry! 你不是嘉宾,不能进入!\")</script><script>javascript:history.back(-1)</script>";
}
return "";
}
/**
* 模块密码检测
*/
public String checkBoaPassword(Board board){
String boaPasswd = board.getBoaPasswd();
String str = "<script language=javascript>var promptShow = \"请输入该版块的密码\"; var enterText = prompt(promptShow, \"\"); if (!enterText) { alert(\"您没有输入值\"); history.back(-1);}else{if(\""+boaPasswd+"\"!=enterText){alert(\"您输入了错误的密码!\");history.back(-1); }}</script>";
return str;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -