IPアクセスサーバsessionを通じて無効になりますが、コンピュータ名はどうなりますか?
8163 ワード
もっと読む
最近開発された新しいプロジェクトはSpring MVC+Spring+iBatis構造を採用しています.IPアクセスには奇妙な現象が発生する.
システムにログインしたら、どのリンクをクリックしてもシステムを終了します.下に私のコードの一部を貼り付けます.
設定ファイル
login.jspページに下記のコードを書きます.
私が不思議なのは、ブラウザがなぜ違うJSESSIONIDを送るのかということです.コンピュータの名前で訪問すれば問題はありません.また、古いアプリケーション用Strutsを開発しました.IPを通じても、コンピュータ名を使っても問題ないです.初めてこのような問題に遭遇しましたので、お手上げになりました.また、web.xmlでsessionに関する設定は一切していません.
最近開発された新しいプロジェクトはSpring MVC+Spring+iBatis構造を採用しています.IPアクセスには奇妙な現象が発生する.
システムにログインしたら、どのリンクをクリックしてもシステムを終了します.下に私のコードの一部を貼り付けます.
設定ファイル
error
error
cm
modelView
accountController
accountController
accountController
accountController
accountController
accountController
indexController
indexController
indexController
indexController
indexController
indexController
indexController
indexController
handleLoginView
handleLoginProcess
handleIndex
handleModifyPasswordView
handleModifyPasswordProcess
handelForgetPassword
handleForgetPasswordProcess
handelIndexResource
handleDepartmentMember
handleLinkmanGcheng
handleLinkmanJsdw
handleLinkmanXy
handleCustomerXyIndex
handleIndexCustomerDZD
ログインコード
public class AccountController extends AbstractSuperController {
//
public ModelAndView handleLoginProcess(HttpServletRequest request,
HttpServletResponse response) throws ServletException {
try {
User user = new User();
String username = request.getParameter("username");
String password = request.getParameter("password");
user.setName(username);
user.setPassword(password);
user = userService.selectUserByUsernameAndPassword(user);
if (null != user) {
log.info("User " + user.getName() + " Department "
+ user.getCmdeptname() + " logon...................");
HttpSession session = request.getSession(true);
session.setMaxInactiveInterval(3600);
//WebUtils.setSessionAttribute(request, "user", user);
session.setAttribute("user", user);
Cookie cookie = new Cookie("username", encode(username));
cookie.setMaxAge(60 * 60 * 24 * 365);
response.addCookie(cookie);
return new ModelAndView(new RedirectView("/cm/index.do"));
}
} catch (Exception e) {
log.error("", e);
}
return new ModelAndView(new RedirectView("/cm/login.do"));
}
}
ブロックコードpublic class SecurityInterceptor extends HandlerInterceptorAdapter {
protected final Log log = LogFactory.getLog(SecurityInterceptor.class);
public boolean preHandle(HttpServletRequest request,
HttpServletResponse response, Object handler) throws Exception {
// User user = (User) WebUtils.getSessionAttribute(request, "user");
// if (user == null) {
// ModelAndView modelAndView = new ModelAndView(new RedirectView(
// "/cm/login.do"));
// log.info("user is
// logout.............................................");
// throw new ModelAndViewDefiningException(modelAndView);
// } else {
// return true;
// }
ModelAndView modelAndView = new ModelAndView(new RedirectView(
"/cm/login.do"));
HttpSession session = request.getSession(false);
if (null == session)
{
throw new ModelAndViewDefiningException(modelAndView);
}
User user = (User) session.getAttribute("user");
if (user == null) {
log.info("#user is logout.............");
throw new ModelAndViewDefiningException(modelAndView);
}
return true;
}
}
私はスクリーンにセットしていますが、無効になったら自動的にトップページに行きます.login.jspページに下記のコードを書きます.
");
}
%>
印刷された結果は以下の通りです.JSESSIONID=FKyzH2hmpdjJ2vZrZjY0HvM68K4FnvnDTrwLJm4ZT0hwR121tCCS!-401940707
JSESSIONID=FKyF42pkgshMDlKzPnv6tP196b2wrGqJH1Q4wVrhBTJSj16JnJm3!-401940707
JSESSIONID=FKyhDPvVrZ2zJfJkyCNQLTyDy2QBZ2ym6ZhsPJKGVQw19KxZm1Jm!-401940707
JSESSIONIDの部分だけ貼ってあります.私が不思議なのは、ブラウザがなぜ違うJSESSIONIDを送るのかということです.コンピュータの名前で訪問すれば問題はありません.また、古いアプリケーション用Strutsを開発しました.IPを通じても、コンピュータ名を使っても問題ないです.初めてこのような問題に遭遇しましたので、お手上げになりました.また、web.xmlでsessionに関する設定は一切していません.