SpringSecurity自定义登陆页面和跳转页面

如果我们不用form-login说明登陆界面,springsecurity框架将自动为我们生成登陆界面

现在我们不想用自动生成的登陆界面了,而想使用自定义的漂亮的登陆界面

则需要使用<security:form-login/>标签

login-page:指定登陆页面

login-process-url:表单提交的地址

password-parameter:表示登录时密码使用的是哪个参数,默认是 “j_password

username-parameter:表示登录时用户名使用的是哪个参数,默认是 “j_username

default-target-url:登陆成功以后跳转的页面,用该元素时,需设置always-use-default=true

authentication-failure:登陆失败以后跳转的页面

登陆成功和登陆失败也可以专门写一个类,在类中指定跳转的界面,然后配置一个bean通过ref指定对应处理页面的bean,因为我觉得过于复杂,没有采用这种方法,这里也就提一下有这种方法

 

具体的springsecurity配置文件如下:

 1 <beans xmlns="http://www.springframework.org/schema/beans"
 2        xmlns:security="http://www.springframework.org/schema/security"
 3        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 4        xsi:schemaLocation="http://www.springframework.org/schema/beans
 5           http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
 6           http://www.springframework.org/schema/security
 7           http://www.springframework.org/schema/security/spring-security-3.1.xsd">
 8 
 9         <!--
10         自定义表单,通过form-login标签
11         authentication-failure-url指定登陆失败以后应该跳转的页面
12         default-target-url指定登陆成功以后跳转的页面,默认的是index.jsp页面
13         -->
14     <security:http auto-config="true">
15         <security:form-login login-page="/login.jsp"
16                              login-processing-url="/login.do" username-parameter="username"
17                              password-parameter="password"
18                              default-target-url="/successful.jsp"
19                              authentication-failure-url="/login_failure.jsp"
20                              always-use-default-target="true"
21         />
22         <!-- 表示匿名用户可以访问 -->
23         <security:intercept-url pattern="/login*.jsp*"
24                                 access="IS_AUTHENTICATED_ANONYMOUSLY" />
25         <security:intercept-url pattern="/**" access="ROLE_USER" />
26     </security:http>
27 
28     <security:authentication-manager>
29         <security:authentication-provider>
30             <security:user-service>
31                 <security:user name="user" password="user" authorities="ROLE_USER"/>
32                 <security:user name="admin" password="admin" authorities="ROLE_USER, ROLE_ADMIN"/>
33             </security:user-service>
34         </security:authentication-provider>
35     </security:authentication-manager>
36 
37 </beans>

我们需要给login.jsp放行,不然我们将不能访问到,放行有两种方法,我选择的是将access设置为“IS_AUTHENTICATED_ANONYMOUSLY”,当然也可以设置为  “ROLE_ANONYMOUS

另外一种是将security设置为none,具体代码如下:

1  <security:http security="none" pattern="/login.jsp" />
2    <security:http auto-config="true">
3       <security:form-login login-page="/login.jsp"
4          login-processing-url="/login.do" username-parameter="username"
5          password-parameter="password" />
6       <security:intercept-url pattern="/**" access="ROLE_USER" />
7    </security:http>

 

转载于:https://www.cnblogs.com/Hdaydayup/p/6810069.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/572505.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java 建模_Java设计模式菜鸟系列(两)建模与观察者模式的实现

观察者(Observer)模式定义&#xff1a;在对象之间定义了一对多的依赖关系&#xff0c;这样一来。当一个对象改变状态时&#xff0c;依赖它的对象都会收到通知并自己主动跟新。Java已经提供了对观察者Observer模式的默认实现&#xff0c;Java对观察者模式的支持主要体如今Observ…

php多条件查询

需要查询的表格 代码&#xff1a; <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns"http://www.w3.org/1999/xhtml"> <head> <…

Airbert: In-domain Pretraining for Vision-and-Language Navigation

题目&#xff1a;Airbert&#xff1a;视觉和语言导航的域内预训练 摘要 为了解决VLN数据集稀缺的问题&#xff0c;本文创建了一个数据集BNB。我们首先从在线租赁市场的数十万个列表中收集图像标题 (IC) 对。接下来&#xff0c;我们使用 IC 对提出自动策略来生成数百万个 VLN …

os的java版本_如何在OS X上设置或更改默认的Java(JDK)版本?

首次运行/usr/libexec/java_home -V将输出如下内容&#xff1a;Matching Java Virtual Machines (3):1.8.0_05, x86_64: "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk/Contents/Home1.6.0_65-b14-462, x86_64: "Java SE 6" /System…

Java占位符替换工具类

import java.util.HashMap; import java.util.Map; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * 配置文件或模板中的占位符替换工具类 * Date: 15-5-8 * Time: 下午4:12 */ public class PlaceholderUtils { private static final Logger logger L…

java switch 输入2_Java switch语句第二种用法

Java switch语句第二种用法package cn.geekeryi;public class SwitchTest02 {public static void main(String[] args) {short month 1;if (month1||month2||month3){System.out.println("这是一季度");}else if (month4||month5||month6){System.out.println("…

java手游 《剑心》_java

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼package txt2;import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import javax.swing.*;public class MyPanel…

实例讲解webpack的基本使用第二篇

这一篇来讲解一下如何设置webpack的配置文件webpack.config.js 我们新建一个webpack-demo的项目文件夹&#xff0c;然后安装webpack 执行如下命令 在项目文件夹下&#xff0c;建一个dist文件夹来放打包后的文件&#xff0c;以及一个src文件夹来放我们的代码文件 再建立一个inde…

java system.out.read_一个java文件操作小程序 system.out.in buffer read

按键 i buffer readabc123ET 0 97 代码停在此&#xff0c;等待输入 触发代码运行dET 0 …

Redis命令总结及其基础知识讲述

Redis命令总结及其基础知识讲述 1、redis的不同之处 Redis拥有其他数据库不具备的数据结构&#xff0c;又拥有内存存储&#xff08;这使得redis的速度非常快&#xff09;&#xff0c;远程操作&#xff08;使得redis可以与多个客户端和服务器进行连接&#xff09;、持久化&#…

appSettings 配置mysql_app.config数据库配置字符串的三种取法

关于VS2008或VS2005中数据库配置字符串的三种取法VS2008建立Form程序时,如果添加数据源会在配置文件app.config中自动写入连接字符串,这个字符串将会在你利用DataSet,SqlDataAparter,SqlConnection等控件时如影随行地提示你让去选择,或者是新建字符串。如果要用代码的方式取得这…

!!!!Linux系统开发 系列 4 进程资源 环境 fork()子进程 wait() waitpid()僵尸 孤儿进程...

http://990487026.blog.51cto.com/10133282/1834893转载于:https://www.cnblogs.com/zengkefu/p/6832235.html

java 当地时间_【JAVA】获取当地时间

Java代码 importjava.text.SimpleDateFormat;SimpleDateFormat formatter newSimpleDateFormat ("yyyy年MM月dd日 HH:mm:ss ");Date curDate newDate(System.currentTimeMillis());//获取当前时间String str formatter.format(curDate);impo…

js 原型prototype

function MyObject(name, size) {   this.name name;   this.size size; } MyObject.prototype.height "2.26 meters"; MyObject.prototype.tellHeight function() {   return "height of "this.name" is "this.height; } ///使用 …

java 优化线程_Java | 多线程调优(下):如何优化多线程上下文切换?

通过上一讲的讲解&#xff0c;相信你对上下文切换已经有了一定的了解了。如果是单个线程&#xff0c;在 CPU 调用之后&#xff0c;那么它基本上是不会被调度出去的。如果可运行的线程数远大于 CPU 数量&#xff0c;那么操作系统最终会将某个正在运行的线程调度出来&#xff0c;…

js 的正则表达式 部分展示test()方法的验证功能

<!DOCTYPE html> <html> <head> <meta charset"utf-8"> <title>菜鸟教程(runoob.com)</title> </head> <body><script> var patt1new RegExp("^[1-9][0-9]*$"); document.write(patt1.test("1…

java 工厂模式详解_java 工厂模式的实例详解

java 工厂模式的实例详解工厂方法中的“工厂”和我们平常理解的一样&#xff1a;用于生产产品。而客户是要和产品打交道&#xff0c;所以工厂方法模式的意义在于把客户和产品分开&#xff0c;达到解耦和更灵活的目的。一般我们有一个产品的抽象类&#xff0c;然后有几个具体的产…

用pfx证书java双向认证_把CA证书生成的crt的证书和pem的私钥转换成java能够使用的keystore和pcks12的证书,实现https双向认证...

最近在做一个https双向认证的工作&#xff0c;领导先让我实现&#xff0c;我之前写了一篇文章&#xff0c;把tomcat的生成证书和配置的实现写了出来。现在领导给了我服务器的CA证书的客户端证书和私钥&#xff0c;服务端信任证书&#xff0c;分别是crt和pem格式的文件&#xff…

jmail组件 java_Jmail的主要参数列表

说明&#xff1a;更多的信息请参考Jmail说明&#xff0c;我想这已经足够用的了。(1)Body(信件正文):字符串网络说明&#xff1a;更多的信息请参考Jmail说明&#xff0c;我想这已经足够用的了。(1)Body(信件正文) : 字符串如&#xff1a;JMail.Body "这里可以是用户填写的…

Go -- log4go日志

折腾&#xff1a; 【已解决】go语言中实现log信息同时输出到文件和控制台(命令行&#xff09; 期间&#xff0c;已经通过io的MultiWriter搞定了同时输出信息到文件和console&#xff0c;但是不支持level。 所以&#xff0c;再去试试这个log4go。 github.com/keepeye/log4go 【折…