某某茶叶有限公司欢迎您!
金沙棋牌在线 > 操作系统 > spring security 4.2.2 自定义登录界面

spring security 4.2.2 自定义登录界面

时间:2019-11-30 04:19

平铺直叙状态下,步入Windows分界面以前都有一个记名进度,如何在签到前让系统推行脚本呢?上边介绍生机勃勃种方法。

搭建基本条件

详情见 spring-security入门

品类目录构造如下:

图片 1

项目目录构造

在签到平台时,不希望接纳FPAJERO默许的内置登陆分界面,想通过自定义登陆分界面完结登录操作,内置登陆分界面如下图:

图片 2预览分界面.png图片 3功能展现

1.开采组战术,在Run(运营)中输入GREDIT.MSC,点击确认。

创办登陆界面

在 webapp/ 下开创log.jsp,登入表单代码如下:

<html>
    <body>
        <form action="j_spring_security_check" method="POST">
            <input type="text" name="username"  /> </br> 
            <input type="password" name="password" /> </br> 
            <input type="submit" value="submit" />
        </form>
    </body>
</html>

注意:

  • 表单提交到 j_spring_security_check
  • post 方法提交表单。
  • 用户名name使用 username
  • 客商密码name使用 password

图片 4

从图中得以见到此次自定义View的意义。具体效果如下:

图片 5

改革spring-security配置文件security.xml

在security.xml文件中增添以下内容:

<b:beans xmlns="http://www.springframework.org/schema/security"
    xmlns:b="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
                        http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security.xsd">

    <http pattern="/login.jsp" security="none" />
    <http auto-config="true" use-expressions="true">
        <intercept-url pattern="/**" access="hasRole('ROLE_USER')" />
        <form-login 
            login-page="/login.jsp" 
            login-processing-url="/j_spring_security_check" 
            authentication-failure-url="/login.jsp"
            default-target-url="/index.jsp" />
        <csrf disabled="true" />
    </http>
    <user-service>
        <user name="user" password="password" authorities="ROLE_USER" />
    </user-service>
</b:beans>

注意:

  • <http pattern="/login.jsp" security="none" /> 表示对此 /login.jsp 不做权限过滤。

  • <intercept-url pattern="/**" access="hasRole('ROLE_USER')" /> 表示全体ROLE_USER权限的顾客本事访问全体渠道。

  • <form-login /> 标签用于自定义登陆界面。

1.  login-page="/login.jsp" 表示使用login.jsp代替默认登陆界面。 

2.  login-processing-url="/j_spring_security_check"  使用spring-security 4.x版本必须添加该属性,表示登录表单提交路径。

3.  authentication-failure-url="/login.jsp" 表示授权失败之后跳转到login.jsp界面。

4.  default-target-url="/index.jsp" 表示授权成功之后默认跳转到index.jsp界面。
  • <user /> 标签用于授权顾客,属性name标记客商名,password标记顾客密码,属性authorities用来申明该客户具有的权力。

 

  • 安装底部文字的字体大小、字体颜色、文字内容

  • 设置输入框的字体大小、字体颜色、文字内容、提醒文字

2.风流倜傥一点击Computer Configuration -> Windows Settings -> Scripts(Startup/Shutdown卡塔尔(قطر‎

颁发项目

类型周转结果如下图:

图片 6

登录分界面

图片 7

登录成功分界面

签到分界面,获取到顾客名和密码的值,发送到报表系统,报表服务带着那四个参数访谈认证地址实行验证。

风流倜傥、 第一步先新建贰个类名为EditTextPlus世襲FrameLayout的文书,因为大家要贯彻在布局文件中能是用本身的质量,所以大家还要在values目录下新建attrs.xml文件(用于增多自定义的习性卡塔尔(英语:State of Qatar)

图片 8

源码

点击下载源码

自定义登入分界面

图片 9第1步.png

3.在侧面双击Stratup,现身如图弹窗,可在这里加多cmd可能PowerShell脚本。

登入分界面设置

二、在 attrs.xml 文件中增多如下属性(当中除了字体的着力属性之外,还富含了输入框的输入类型,键盘的等级次序等卡塔尔(英语:State of Qatar)

图片 10

自定义html登入页面:命名称叫login.html,并保存在%FENCORE_HOME%WebReport下,代码如下:

<?xml version="1.0" encoding="utf-8"?><resources> <declare-styleable name="EditTextPlus"> <attr name="head_title_text" format="string" /> <attr name="head_titile_text_size" format="dimension" /> <attr name="head_title_text_color" format="color" /> <attr name="edit_hint_text" format="string" /> <attr name="edit_text_size" format="dimension" /> <attr name="edit_text_color" format="color" /> <attr name="edit_input_type" format="enum"> <enum name="Text" value="0" /> <enum name="Phone" value="1" /> <enum name="Password" value="2" /> <enum name="Number" value="3" /> </attr> <!-- 键盘类型 --> <attr name="edit_editor_option" format="enum"> <enum name="IME_ACTION_NONE" value="0" /> <enum name="IME_ACTION_DONE" value="1" /> <enum name="IME_ACTION_GO" value="2" /> <enum name="IME_ACTION_NEXT" value="3" /> <enum name="IME_ACTION_PREVIOUS" value="4" /> <enum name="IME_ACTION_SEARCH" value="5" /> <enum name="IME_ACTION_SEND" value="6" /> <enum name="IME_ACTION_UNSPECIFIED" value="7" /> </attr> </declare-styleable></resources>

4.点击确认

<html>    
<head>  
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">  
<script type="text/javascript" src="ReportServer?op=emb&resource=finereport.js"></script>    
<script type="text/javascript">    
function doSubmit() {    
    var username = FR.cjkEncode(document.getElementById("username").value); //获取输入的用户名    
    var password = FR.cjkEncode(document.getElementById("password").value);  //获取输入的参数    
jQuery.ajax({    
     url:"http://localhost:8075/WebReport/ReportServer?op=fs_load&cmd=sso",//单点登录的管理平台报表服务器    
     dataType:"jsonp",//跨域采用jsonp方式    
     data:{"fr_username":username,"fr_password":password},//获取用户名密码    
     jsonp:"callback",    
     timeout:5000,//超时时间(单位:毫秒)    
     success:function(data) {    
            if (data.status === "success") {  
window.location=data.url;//认证成功跳转页面,因为ajax不支持重定向所有需要跳转的设置  
                  //登录成功       
            } else if (data.status === "fail"){    
                 alert("用户名或密码错误");//登录失败(用户名或密码错误)    
            }    
     },    
     error:function(){    
           alert("超时或服务器其他错误");// 登录失败(超时或服务器其他错误)    
     }    
});  
}    
</script>    
</head>    
<body>    
<p>请登录</p>    
<form name="login" method="POST">    
    <p>    
        用户名:    
        <input id="username" type="text" />    
    </p>    
    <p>    
        密 码:    
        <input id="password" type="password" />    
    </p>    
    <input type="button" value="登录" onclick="doSubmit()"/>    
</form>    
</body>    
</html>  

那就是说增添了这几个属性之后要哪些使用呢?如下图所示: