spring mvc - Servlet filter not working properly -
I am using Spring MVC to prevent url, I am using the sublet filter in it. Jsp "is trying to authenticate the user. But when I enter the username and password and submit it. It directs me to "login.jsp"
My Servlet filter:
@WebFilter (urlPatterns = {"/ *"}) Public category MyFilter filter { Private ServletContext References; Public MyFilter () {// TODO Automatically Generated Creator Stub} Public Null Destroy () {// Tudro Auto-Generated Method Stub} Public Zero DoFilter (ServletResponse Response, FilterChain Series) Throws IOException, ServletException { Response.setContentType ("text / html"); PrintWriter out = response.getWriter (); HttpServletRequest request1 = (HttpServletRequest) request; HttpServletResponse response1 = (HTTPServlet Response) response; Http session session = request1.getSession (wrong); String uri = request1.getRequestURI (); If ((session == blank) session. GetAttribute ("user") == faucet) & amp; Amp; Amp; Amp; Amp; Amp; ("Login.jsp") & amp;; uri.endsWith ("Record / Confirm")) {Request1.getRequestDispatcher ("/ WEB-INF / jsp / login.jsp") Forwarded (Request 1, Response 1); } And {chain.doFilter (request, response); }} Public Zero Init (FilterConfig fConfig) throws ServletException {this.context = fConfig.getServletContext (); My Controller: @Controller @RequestMapping ("/ record") Public Class Chief Controller {@Resource (name = "userService") Personal UserService userService; @resources (name = "rollsewa") private rollsewa rollsewa; @RequestMapping (value = "/ login") public string GetFront (model model) {return "login"; } @RequestMapping (value = "/ authentication", method = RequestMethod.POST) public string authentication (@RequestParam ("uname") string user name, @ RequestParam ("pass") string password, HTTP session, HTTPSvette request request model model ) {Boolean breakthrough = user service. Valid (username, password); User user = userService.getuserByName (username); Set up & lt; Role & gt; Roles = user.getRole (); // string role = null; / (For role roll 1: roles) {if (role1.getRoleName ()). EqualsIgnoreCase ("admin")) {role = "admin"; }} * / If (success) {session = request.getSession (); Session.setAttribute ("those", user names); Session.setAttribute ("roles", roles); Return "Hello"; } And {return "error"; }} }
My web Xml
& lt ;? Xml version = "1.0" encoding = "UTF-8" & gt; & Lt; Web-app xmlns: xsi = "http://www.w3.org/2001/XMLSchema-instance" xmlns = "http://java.sun.com/xml/ns/javaee" xmlns: web = "http: //java.sun.com/xml/ns/javaee/web-app_2_5.xsd "xsi: Schema Location =" http://java.sun.com/xml/ns/javaee http: //java.sun Com / Xml / ns / javaee / web-app_2_5.xsd "id =" WebApp_ID "version =" 2.5 "& gt; & Lt; Display-name & gt; Project1 & lt; / Display-name & gt; & Lt; Servlet & gt; & Lt; Servlet-name & gt; Spring & lt; / Servlet-name & gt; & Lt; Servlet category & gt; Org.springframework.web.servlet.DispatcherServlet & lt; / Servlet-class & gt; & Lt; Load-On-Startup & gt; 1 & lt; / Load-on-startup & gt; & Lt; / Servlet & gt; & Lt; Servlet-mapping & gt; & Lt; Servlet-name & gt; Spring & lt; / Servlet-name & gt; & Lt; URL pattern & gt; / & Lt; / URL pattern & gt; & Lt; / Servlet-mapping & gt; & Lt; Filter & gt; & Lt; Filter-name & gt; MyFilter & lt; / Filter-name & gt; & Lt; Filter range & gt; Filter.MyFilter & lt; / Filter range & gt; & Lt; / Filter & gt; & Lt; Filter-mapping & gt; & Lt; Filter-name & gt; MyFilter & lt; / Filter-name & gt; & Lt; URL pattern & gt; / * & Lt; / URL pattern & gt; & Lt; / Filter-mapping & gt; & Lt; / Web application & gt;
You have to set your session attributes in the filter because each time you input some input Enter the login form and submit it to the next page or the session attribute for the user is zero. This is why it is looping on your login page
Comments
Post a Comment