您的位置:首页 > 其它

【Filter 不登陆无法访问】web项目中写一个过滤器实现用户不登陆,直接给链接,无法进入页面的功能

2016-07-28 15:35 1021 查看
在web项目中写一个过滤器实现用户不登陆,直接给链接,无法进入页面,而重定向到登陆界面的功能。

项目是用springMVC+spring+hibernate实现 (和这个没有多大关系)

第一步

首先写一个登录权限过滤类--LoginFilter类实现Filter接口

package com.agen.controller;

import java.util.UUID;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

import org.hibernate.Criteria;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.criterion.Criterion;
import org.hibernate.criterion.Restrictions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpRequest;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.util.Assert;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import com.agen.entity.User;
import com.agen.service.AuthorityService;
import com.agen.service.RoleService;
import com.agen.service.UserSevice;
import com.fasterxml.jackson.annotation.JsonCreator.Mode;

@Controller()
@RequestMapping("login")
public class LoginController {

@Resource(name="userSevice")
private UserSevice userService;

@Resource(name="roleService")
private RoleService roleService;

@Resource(name="authorityService")
private AuthorityService authorityService;

@Autowired
private SessionFactory sessionFactory;

public Session getCurrentSession() {
// 需要开启事物,才能得到CurrentSession  getCurrentSession()是获取已有的 没有  就创建新的
return sessionFactory.getCurrentSession();
}

@RequestMapping("/login1")
public String login(User user, Model model,HttpServletRequest request){
if(user.getUserName()==null &&user.getPassword()==null){
model.addAttribute("error", "0");
return "../../../index";
}else{
Criteria criteria = getCurrentSession().createCriteria(User.class);
criteria.add(Restrictions.eq("userName", user.getUserName()));
User user2 = userService.uniqueResult(criteria);
if(user2 == null) {
model.addAttribute("error", "1");
return "../../../index";
} else if(!( user2.getPassword() .equals(user.getPassword()) )){
model.addAttribute("error", "2");
return "../../../index";
}
Assert.notNull(user);
HttpSession session = request.getSession();
session.setAttribute("user", user);
return "/index/index";
}

}

@RequestMapping("/register")
@ResponseBody
public boolean register(User user){
boolean flag = false;
user.setUserId(UUID.randomUUID().toString());
Criteria criteria = getCurrentSession().createCriteria(User.class);
criteria.add(Restrictions.eq("userName", user.getUserName()));
User user2 = userService.uniqueResult(criteria);
if(user2 != null){
flag = false;
}else{
userService.save(user);
flag = true;
}
return flag;
}

/**
* 页面二级菜单
* @return
*/
@RequestMapping("/welcome1")
public String welcome(){

return "/index/welcome";
}
@RequestMapping("/geneinfo")
public String geneinfo(){
return "/geneinfo/geneinfoone";
}

}


View Code
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: