zoukankan      html  css  js  c++  java
  • Shiro整合web01

     Shiro 集成 Web 配置
     <listener>
        <listener-class>org.apache.shiro.web.env.EnvironmentLoaderListener</listener-class>
      </listener>
       
    <!-- 添加shiro支持 -->
    <filter>
        <filter-name>ShiroFilter</filter-name>
        <filter-class>org.apache.shiro.web.servlet.ShiroFilter</filter-class>
    </filter>
     
    <filter-mapping>
        <filter-name>ShiroFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping> 
    ---------------------------------------------------------------------------------------
     [main]
    authc.loginUrl=/login   没登录的话先进行身份认证
    roles.unauthorizedUrl=/unauthorized.jsp
    //权限不够
    perms.unauthorizedUrl=/unauthorized.jsp
    /权限不够
    [users]
    java1234=123456,admin
    jack=123,teacher
    marry=234
    json=345
    [roles]
    admin=user:*
    teacher=student:*
    [urls]
    /login=anon
    /admin=authc
    /student=roles[teacher]  请求/student这个url必须有一个用户里角色为teacher的用户
    /teacher=perms["user:create"]
    ---------------------------------------------------------------------------------------------------------------------------
     public class LoginServlet extends HttpServlet{
     
    private static final long serialVersionUID = 1L;
     
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    // TODO Auto-generated method stub
    System.out.println("login doget");
    req.getRequestDispatcher("login.jsp").forward(req, resp);
    }
     
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    System.out.println("login dopost");
    String userName=req.getParameter("userName");
    String password=req.getParameter("password");
    Subject subject=SecurityUtils.getSubject();
    UsernamePasswordToken token=new UsernamePasswordToken(userName, password);
    try{
    subject.login(token);
    Session session = subject.getSession();
    System.out.println("sessionId:"+session.getId());
    System.out.println("sessionHost:"+session.getHost());
    System.out.println("sessionTimeout:"+session.getTimeout());
    session.setAttribute("info", "session的数据");
    resp.sendRedirect("success.jsp");
    }catch(Exception e){
    e.printStackTrace();
    req.setAttribute("errorInfo", "用户名或者密码错误");
    req.getRequestDispatcher("login.jsp").forward(req, resp);
    }
    }
    --------------------------------------------------------------------------------------------
    <body>欢迎你!
    <shiro:hasRole name="admin">
    欢迎有admin角色的用户
    </shiro:hasRole>
    <shiro:hasPermission name="student:create">
    欢迎有student:create权限的用户
    <shiro:principal/>
    </shiro:hasPermission>
    </body>
  • 相关阅读:
    SharePoint Workflow出了问题, 除了ULS log还可以看什么日志?
    Kernel Mode Debugging 初步 一
    一些debug常用的"魔法"数值
    SQL Block的初级排查
    [持续更新]一些有用的PowerShell收集
    关于斜杠(slash)和反斜杠(back slash)的小知识点
    如何安全地解放C盘剩余磁盘空间?
    返璞归真asp.net mvc 1.0(3) Controller/Action【转】
    关于Oxite的教训
    [翻译ASP.NET MVC]Contact Manager开发之旅之迭代2 修改样式,美化应用 【转】
  • 原文地址:https://www.cnblogs.com/MAPO/p/8490796.html
Copyright © 2011-2022 走看看