# shiroIniWeb **Repository Path**: luoyong/shiroIniWeb ## Basic Information - **Project Name**: shiroIniWeb - **Description**: The shiro application based on web. - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2014-08-27 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README The shiro application based on web. =================================== #### pom.xml ```xml 4.0.0 name.luoyong.shiro shiroIniWeb 0.0.1-SNAPSHOT jar shiroIniWeb http://maven.apache.org UTF-8 junit junit 4.11 test commons-logging commons-logging 1.2 org.apache.shiro shiro-core 1.2.3 org.apache.shiro shiro-web 1.2.3 javax.servlet servlet-api 3.0-alpha-1 provided javax.servlet javax.servlet-api 3.1.0 provided javax.servlet jsp-api 2.0 provided org.eclipse.jetty jetty-maven-plugin 9.2.1.v20140609 3 / ``` #### shiro.ini ```ini [main] authc.loginUrl=/login [users] luoyong=123,role1 LiuXiang=456,role2 [roles] role1=book:add,book:delete role2=user:manager,user:alter [urls] /login=anon /logout=logout /**=authc ``` #### web.xml ```xml org.apache.shiro.web.env.EnvironmentLoaderListener shiroFilter org.apache.shiro.web.servlet.ShiroFilter shiroFilter /* ``` #### LoginServlet.java ```java package name.luoyong.shiro.shiroIniWeb.servlet; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.shiro.SecurityUtils; import org.apache.shiro.authc.AuthenticationException; import org.apache.shiro.authc.IncorrectCredentialsException; import org.apache.shiro.authc.UnknownAccountException; import org.apache.shiro.authc.UsernamePasswordToken; import org.apache.shiro.subject.Subject; @WebServlet(urlPatterns="/login") public class LoginServlet extends HttpServlet { private static final String loginJspUrl = "/login.jsp"; private static final String loginSuccessJspUrl = "/loginSuccess.jsp"; @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.getRequestDispatcher("/login.jsp").forward(request, response); } @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { Subject subject = SecurityUtils.getSubject(); if(subject.isAuthenticated()) { request.getRequestDispatcher(loginSuccessJspUrl).forward(request, response); return; } String username = request.getParameter("username"); String password = request.getParameter("password"); UsernamePasswordToken token = new UsernamePasswordToken(username, password); String loginErrorMsg = null; try { subject.login(token); } catch(UnknownAccountException e) { loginErrorMsg = "查无此人!"; } catch(IncorrectCredentialsException e) { loginErrorMsg = "密码错误!"; } catch(AuthenticationException e) { loginErrorMsg = "登陆失败!"; } request.setAttribute("loginErrorMsg", loginErrorMsg); if(subject.isAuthenticated()) { request.getRequestDispatcher(loginSuccessJspUrl).forward(request, response); return; } else { request.getRequestDispatcher(loginJspUrl).forward(request, response); return; } } } ```