• 配置web.xml和glassfish容器实现javaEE表单验证


    web.xml配置:

       <!-- 声明用于安全约束的角色 --> 
       <security-role>
            <role-name>ReimUser</role-name>
        </security-role>
        <security-role>
            <role-name>ReimAdmin</role-name>
        </security-role>
    
        <security-constraint>
            <web-resource-collection>
                <web-resource-name>root</web-resource-name>
                <url-pattern>/service/*</url-pattern>
                <url-pattern>/rest/*</url-pattern>
                <http-method>POST</http-method>
                <http-method>GET</http-method>
            </web-resource-collection>
            <auth-constraint>
                <role-name>ReimUser</role-name>
            </auth-constraint>
        </security-constraint>
    
       <!--  配置表单验证 -->
        <login-config>
            <auth-method>FORM</auth-method>
            <!--  指定HTTP Basic验证中使用的领域名  -->
            <realm-name>ReimApp</realm-name>
            <form-login-config>
                <form-login-page>/login.jsp</form-login-page>
                <form-error-page>/login.jsp</form-error-page>
            </form-login-config>
        </login-config>    

     表单的action地址j_security_check  j_username j_password不可更改

    新建用户表、组表并在glassfish的领域中配置对应的用户表、组表,用于校验用户是否合法。合法时从组表中读取用户对应的组设置到 container 中。

    其实这就是容器实现的sam模块,他会从配置的 组表 里面查当前登录的用户有哪些组,然后设置  GroupPrincipal 和 sam中 从 token 解析 scope 出来去设置一样。

    默认获取 UserPrincipal 对应的类,从里面解析出来的用户信息只有一个账号信息。如果需要获取完成的用户信息,可以自己实现ServerAuthModule模块来实现。

    这里配置的参数就是ServerAuthModule类所用到的参数。

    要支持这种,在 ServerAuthModule 的 validateRequest 里面加上对应的代码就可以了:

    if(request.getServletPath().startsWith('/j_security_check')) {
    String username = request.getParameter('j_username');
    String password = request.getParameter('j_password');
    //TODO: check username and password
    //TODO: set user's groups
    }

    这样action 和 对应的参数名称就都可以自己定义了,。 

  • 相关阅读:
    java的instanceof简单使用
    PHP中return,exit,die的区别
    C#调用Dll文件中方法的简单应用
    C#的托管和非托管的简单理解
    对象造型(引用类型转换)
    面向对象3大特性的简单理解
    css3自定义滚动条背景透明
    console.time方法与console.timeEnd方法
    IE8 input X 去掉文本框的叉叉和密码输入框的眼睛图标
    JavaSript模块规范
  • 原文地址:https://www.cnblogs.com/jay763190097/p/6743487.html
Copyright © 2020-2023  润新知