Spring Security

Spring Security Login Form Using Database

<div dir&equals;"ltr" style&equals;"text-align&colon; justify&semi;">&NewLine;<p>In this tutorial we will discuss same <a href&equals;"https&colon;&sol;&sol;dineshonjava&period;com&sol;spring-security-form-based-login-example&sol;"><b>previous example<&sol;b><&sol;a> of custom login form for authentication but difference is that only we using database for username and password instead of reading from XML file&period;<&sol;p>&NewLine;<div dir&equals;"ltr" style&equals;"background-color&colon; white&semi; font-family&colon; Arial&comma;Tahoma&comma;Helvetica&comma;FreeSans&comma;sans-serif&semi; font-size&colon; 13px&semi; font-style&colon; normal&semi; font-variant&colon; normal&semi; font-weight&colon; normal&semi; letter-spacing&colon; normal&semi; line-height&colon; 18px&semi; orphans&colon; 2&semi; text-align&colon; left&semi; text-indent&colon; 0px&semi; text-transform&colon; none&semi; white-space&colon; normal&semi; widows&colon; 2&semi; word-spacing&colon; 0px&semi;">&NewLine;<h2><b>Required Tools used for this Application&colon;<&sol;b><&sol;h2>&NewLine;<ul style&equals;"line-height&colon; 1&period;4&semi; margin&colon; 0&period;5em 0px&semi; padding&colon; 0px 2&period;5em&semi;">&NewLine;<li style&equals;"margin&colon; 0px 0px 0&period;25em&semi; padding&colon; 0px&semi; text-indent&colon; 0px&semi;">Spring MVC 3&period;0&period;1<&sol;li>&NewLine;<li style&equals;"margin&colon; 0px 0px 0&period;25em&semi; padding&colon; 0px&semi; text-indent&colon; 0px&semi;">Spring Security 3&period;1&period;0<&sol;li>&NewLine;<li style&equals;"margin&colon; 0px 0px 0&period;25em&semi; padding&colon; 0px&semi; text-indent&colon; 0px&semi;">STS 2&period;8&period;1&period;RELEASE<&sol;li>&NewLine;<li style&equals;"margin&colon; 0px 0px 0&period;25em&semi; padding&colon; 0px&semi; text-indent&colon; 0px&semi;">Tomcat 7<&sol;li>&NewLine;<li style&equals;"margin&colon; 0px 0px 0&period;25em&semi; padding&colon; 0px&semi; text-indent&colon; 0px&semi;">Jdk 1&period;7<&sol;li>&NewLine;<li style&equals;"margin&colon; 0px 0px 0&period;25em&semi; padding&colon; 0px&semi; text-indent&colon; 0px&semi;">MySQL Database<&sol;li>&NewLine;<&sol;ul>&NewLine;<&sol;div>&NewLine;<p>To understand this application you have some prior knowledge about the <a href&equals;"https&colon;&sol;&sol;dineshonjava&period;com&sol;spring-web-mvc-framework-chapter-38&sol; target&equals;" rel&equals;"noopener"><b>Spring MVC web application&period;<&sol;b><&sol;a><&sol;p>&NewLine;<h2 id&equals;"ads-id" align&equals;"center">Spring Security Login Form Using Database<&sol;h2>&NewLine;<p><b>Step 1&colon; <&sol;b>Please download the following more jars <b>for Spring Security Lib<&sol;b> from its<a style&equals;"color&colon; &num;888888&semi; text-decoration&colon; initial&semi;" href&equals;"http&colon;&sol;&sol;www&period;springsource&period;com&sol;download&sol;community&quest;project&equals;Spring&percnt;20Security&amp&semi;version&equals;3&period;2&period;0&period;M1" target&equals;"&lowbar;blank" rel&equals;"noopener"><b> official site<&sol;b><&sol;a>&period;<br &sol;>&NewLine;To get started with the implementation&comma; following jars need to be present in the class path of the project&period;<&sol;p>&NewLine;<ul style&equals;"-webkit-text-size-adjust&colon; auto&semi; -webkit-text-stroke-width&colon; 0px&semi; background-color&colon; white&semi; color&colon; &num;222222&semi; font-family&colon; Arial&comma; Tahoma&comma; Helvetica&comma; FreeSans&comma; sans-serif&semi; font-size&colon; 13px&semi; font-style&colon; normal&semi; font-variant&colon; normal&semi; font-weight&colon; normal&semi; letter-spacing&colon; normal&semi; line-height&colon; 18px&semi; margin&colon; 0&period;5em 0px&semi; orphans&colon; 2&semi; padding&colon; 0px 2&period;5em&semi; text-align&colon; left&semi; text-indent&colon; 0px&semi; text-transform&colon; none&semi; white-space&colon; normal&semi; widows&colon; 2&semi; word-spacing&colon; 0px&semi;">&NewLine;<li style&equals;"margin&colon; 0px 0px 0&period;25em&semi; padding&colon; 0px&semi; text-indent&colon; 0px&semi;"><i><b>spring-security-acl-3&period;1&period;3&period;RELEASE&period;jar<&sol;b><&sol;i><&sol;li>&NewLine;<li style&equals;"margin&colon; 0px 0px 0&period;25em&semi; padding&colon; 0px&semi; text-indent&colon; 0px&semi;"><i><b>spring-security-aspects-3&period;1&period;3&period;RELEASE&period;jar<&sol;b><&sol;i><&sol;li>&NewLine;<li style&equals;"margin&colon; 0px 0px 0&period;25em&semi; padding&colon; 0px&semi; text-indent&colon; 0px&semi;"><i><b>spring-security-cas-3&period;1&period;3&period;RELEASE&period;jar<&sol;b><&sol;i><&sol;li>&NewLine;<li style&equals;"margin&colon; 0px 0px 0&period;25em&semi; padding&colon; 0px&semi; text-indent&colon; 0px&semi;"><i><b>spring-security-config-3&period;1&period;3&period;RELEASE&period;jar<&sol;b><&sol;i><&sol;li>&NewLine;<li style&equals;"margin&colon; 0px 0px 0&period;25em&semi; padding&colon; 0px&semi; text-indent&colon; 0px&semi;"><i><b>spring-security-core-3&period;1&period;3&period;RELEASE&period;jar<&sol;b><&sol;i><&sol;li>&NewLine;<li style&equals;"margin&colon; 0px 0px 0&period;25em&semi; padding&colon; 0px&semi; text-indent&colon; 0px&semi;"><i><b>spring-security-crypto-3&period;1&period;3&period;RELEASE&period;jar<&sol;b><&sol;i><&sol;li>&NewLine;<li style&equals;"margin&colon; 0px 0px 0&period;25em&semi; padding&colon; 0px&semi; text-indent&colon; 0px&semi;"><i><b>spring-security-ldap-3&period;1&period;3&period;RELEASE&period;jar<&sol;b><&sol;i><&sol;li>&NewLine;<li style&equals;"margin&colon; 0px 0px 0&period;25em&semi; padding&colon; 0px&semi; text-indent&colon; 0px&semi;"><i><b>spring-security-openid-3&period;1&period;3&period;RELEASE&period;jar<&sol;b><&sol;i><&sol;li>&NewLine;<li style&equals;"margin&colon; 0px 0px 0&period;25em&semi; padding&colon; 0px&semi; text-indent&colon; 0px&semi;"><i><b>spring-security-remoting-3&period;1&period;3&period;RELEASE&period;jar<&sol;b><&sol;i><&sol;li>&NewLine;<li style&equals;"margin&colon; 0px 0px 0&period;25em&semi; padding&colon; 0px&semi; text-indent&colon; 0px&semi;"><i><b>spring-security-taglibs-3&period;1&period;3&period;RELEASE&period;jar<&sol;b><&sol;i><&sol;li>&NewLine;<li style&equals;"margin&colon; 0px 0px 0&period;25em&semi; padding&colon; 0px&semi; text-indent&colon; 0px&semi;"><i><b>spring-security-web-3&period;1&period;3&period;RELEASE&period;jar<&sol;b><&sol;i><&sol;li>&NewLine;<&sol;ul>&NewLine;<p>&nbsp&semi;<&sol;p>&NewLine;<div style&equals;"background-color&colon; &num;f2f9fc&semi; border&colon; 1px solid &num;c9e6f2&semi; border-radius&colon; 3px&semi; padding&colon; 16px&semi; line-height&colon; 1&period;45&semi;"><span style&equals;"color&colon; red&semi; font-size&colon; x-large&semi; text-align&colon; center&semi;"><b>Popular Tutorials<&sol;b><&sol;span><&sol;p>&NewLine;<ul style&equals;"text-align&colon; left&semi;">&NewLine;<li><b><a href&equals;"https&colon;&sol;&sol;dineshonjava&period;com&sol;spring-tutorial&sol;"><em><strong>Spring Tutorial<&sol;strong> <&sol;em><&sol;a><&sol;b><&sol;li>&NewLine;<li><b><a href&equals;"https&colon;&sol;&sol;dineshonjava&period;com&sol;spring-web-mvc-framework-chapter-38&sol;"><strong><em>Spring MVC Web Tutorial <&sol;em><&sol;strong><&sol;a><&sol;b><&sol;li>&NewLine;<li><b><a href&equals;"https&colon;&sol;&sol;dineshonjava&period;com&sol;introduction-to-spring-boot-a-spring-boot-complete-guide&sol;"><strong>Spring Boot Tutorial<&sol;strong> <&sol;a><&sol;b><&sol;li>&NewLine;<li><b><a href&equals;"https&colon;&sol;&sol;dineshonjava&period;com&sol;spring-security-take-baby-step-to-secure&sol;"><em>Spring Security Tutorial<&sol;em><&sol;a><&sol;b><&sol;li>&NewLine;<li><b><a href&equals;"https&colon;&sol;&sol;dineshonjava&period;com&sol;spring-aop-tutorial-with-example-aspect-advice-pointcut-joinpoint&sol;"><em>Spring AOP Tutorial<&sol;em><&sol;a><&sol;b><&sol;li>&NewLine;<li><b><a href&equals;"https&colon;&sol;&sol;dineshonjava&period;com&sol;using-spring-jdbc-framework-chapter-32&sol;"><em>Spring JDBC Tutorial<&sol;em><&sol;a><&sol;b><&sol;li>&NewLine;<li><b><a href&equals;"https&colon;&sol;&sol;dineshonjava&period;com&sol;spring-hateoas-hypermedia-driven-restful-web-service&sol;"><em><strong>Spring HATEOAS <&sol;strong><&sol;em><&sol;a><&sol;b><&sol;li>&NewLine;<li><b><a href&equals;"https&colon;&sol;&sol;dineshonjava&period;com&sol;microservices-with-spring-boot&sol;"><em><strong>Microservices with Spring Boot<&sol;strong><&sol;em><&sol;a><&sol;b><&sol;li>&NewLine;<li><b><a href&equals;"https&colon;&sol;&sol;dineshonjava&period;com&sol;jax-rs-web-service-tutorial&sol;"><strong><em>REST Webservice<&sol;em> <&sol;strong><&sol;a><&sol;b><&sol;li>&NewLine;<li><b><a href&equals;"https&colon;&sol;&sol;dineshonjava&period;com&sol;core-java-baby-step-to-be-best-java-ian&sol;"><em><strong>Core Java <&sol;strong><&sol;em><&sol;a><&sol;b><&sol;li>&NewLine;<li><b><a href&equals;"https&colon;&sol;&sol;dineshonjava&period;com&sol;hibernate-3-on-baby-steps&sol;"><em><strong>Hibernate Tutorial<&sol;strong><&sol;em><&sol;a><&sol;b><&sol;li>&NewLine;<li><b><a href&equals;"https&colon;&sol;&sol;dineshonjava&period;com&sol;spring-batch-process-with-example&sol;"><strong><em>Spring Batch<&sol;em> <&sol;strong><&sol;a><&sol;b><&sol;li>&NewLine;<&sol;ul>&NewLine;<&sol;div>&NewLine;<p><b>Step 2&colon; <&sol;b>Create the project &&num;8220&semi;<b>SpringSecurityLoginDatabase<&sol;b>&&num;8221&semi; with packages<b>&&num;8220&semi;com&period;dineshonjava&period;security&period;controller&&num;8221&semi;<&sol;b> and create the &&num;8220&semi;<b>LoginController&period;java<&sol;b>&&num;8221&semi; file in this package&period;<&sol;p>&NewLine;<p><b style&equals;"-webkit-text-size-adjust&colon; auto&semi; -webkit-text-stroke-width&colon; 0px&semi; background-color&colon; white&semi; color&colon; &num;274e13&semi; font-family&colon; Arial&comma; Tahoma&comma; Helvetica&comma; FreeSans&comma; sans-serif&semi; font-size&colon; 13px&semi; font-style&colon; normal&semi; font-variant&colon; normal&semi; letter-spacing&colon; normal&semi; line-height&colon; 18px&semi; orphans&colon; 2&semi; text-align&colon; left&semi; text-indent&colon; 0px&semi; text-transform&colon; none&semi; white-space&colon; normal&semi; widows&colon; 2&semi; word-spacing&colon; 0px&semi;">Step 3&colon;<&sol;b> Some more folders also create on the &&num;8220&semi;<b style&equals;"-webkit-text-size-adjust&colon; auto&semi; -webkit-text-stroke-width&colon; 0px&semi; background-color&colon; white&semi; color&colon; &num;274e13&semi; font-family&colon; Arial&comma; Tahoma&comma; Helvetica&comma; FreeSans&comma; sans-serif&semi; font-size&colon; 13px&semi; font-style&colon; normal&semi; font-variant&colon; normal&semi; letter-spacing&colon; normal&semi; line-height&colon; 18px&semi; orphans&colon; 2&semi; text-align&colon; left&semi; text-indent&colon; 0px&semi; text-transform&colon; none&semi; white-space&colon; normal&semi; widows&colon; 2&semi; word-spacing&colon; 0px&semi;">WEB-INF<&sol;b>&&num;8221&semi; folder with name <b style&equals;"-webkit-text-size-adjust&colon; auto&semi; -webkit-text-stroke-width&colon; 0px&semi; background-color&colon; white&semi; color&colon; &num;274e13&semi; font-family&colon; Arial&comma; Tahoma&comma; Helvetica&comma; FreeSans&comma; sans-serif&semi; font-size&colon; 13px&semi; font-style&colon; normal&semi; font-variant&colon; normal&semi; letter-spacing&colon; normal&semi; line-height&colon; 18px&semi; orphans&colon; 2&semi; text-align&colon; left&semi; text-indent&colon; 0px&semi; text-transform&colon; none&semi; white-space&colon; normal&semi; widows&colon; 2&semi; word-spacing&colon; 0px&semi;">libs&comma; views <&sol;b>for <b style&equals;"-webkit-text-size-adjust&colon; auto&semi; -webkit-text-stroke-width&colon; 0px&semi; background-color&colon; white&semi; color&colon; &num;274e13&semi; font-family&colon; Arial&comma; Tahoma&comma; Helvetica&comma; FreeSans&comma; sans-serif&semi; font-size&colon; 13px&semi; font-style&colon; normal&semi; font-variant&colon; normal&semi; letter-spacing&colon; normal&semi; line-height&colon; 18px&semi; orphans&colon; 2&semi; text-align&colon; left&semi; text-indent&colon; 0px&semi; text-transform&colon; none&semi; white-space&colon; normal&semi; widows&colon; 2&semi; word-spacing&colon; 0px&semi;">jars<&sol;b> and <b style&equals;"-webkit-text-size-adjust&colon; auto&semi; -webkit-text-stroke-width&colon; 0px&semi; background-color&colon; white&semi; color&colon; &num;274e13&semi; font-family&colon; Arial&comma; Tahoma&comma; Helvetica&comma; FreeSans&comma; sans-serif&semi; font-size&colon; 13px&semi; font-style&colon; normal&semi; font-variant&colon; normal&semi; letter-spacing&colon; normal&semi; line-height&colon; 18px&semi; orphans&colon; 2&semi; text-align&colon; left&semi; text-indent&colon; 0px&semi; text-transform&colon; none&semi; white-space&colon; normal&semi; widows&colon; 2&semi; word-spacing&colon; 0px&semi;">jsp<&sol;b> files respectively&period; Two files &&num;8220&semi;<b style&equals;"-webkit-text-size-adjust&colon; auto&semi; -webkit-text-stroke-width&colon; 0px&semi; background-color&colon; white&semi; color&colon; &num;274e13&semi; font-family&colon; Arial&comma; Tahoma&comma; Helvetica&comma; FreeSans&comma; sans-serif&semi; font-size&colon; 13px&semi; font-style&colon; normal&semi; font-variant&colon; normal&semi; letter-spacing&colon; normal&semi; line-height&colon; 18px&semi; orphans&colon; 2&semi; text-align&colon; left&semi; text-indent&colon; 0px&semi; text-transform&colon; none&semi; white-space&colon; normal&semi; widows&colon; 2&semi; word-spacing&colon; 0px&semi;">sdnext-servlet&period;xml<&sol;b>&&num;8221&semi; and &&num;8220&semi;<b style&equals;"-webkit-text-size-adjust&colon; auto&semi; -webkit-text-stroke-width&colon; 0px&semi; background-color&colon; white&semi; color&colon; &num;274e13&semi; font-family&colon; Arial&comma; Tahoma&comma; Helvetica&comma; FreeSans&comma; sans-serif&semi; font-size&colon; 13px&semi; font-style&colon; normal&semi; font-variant&colon; normal&semi; letter-spacing&colon; normal&semi; line-height&colon; 18px&semi; orphans&colon; 2&semi; text-align&colon; left&semi; text-indent&colon; 0px&semi; text-transform&colon; none&semi; white-space&colon; normal&semi; widows&colon; 2&semi; word-spacing&colon; 0px&semi;">sdnext-security&period;xml<&sol;b>&&num;8221&semi; are created on the &&num;8220&semi;<b style&equals;"-webkit-text-size-adjust&colon; auto&semi; -webkit-text-stroke-width&colon; 0px&semi; background-color&colon; white&semi; color&colon; &num;274e13&semi; font-family&colon; Arial&comma; Tahoma&comma; Helvetica&comma; FreeSans&comma; sans-serif&semi; font-size&colon; 13px&semi; font-style&colon; normal&semi; font-variant&colon; normal&semi; letter-spacing&colon; normal&semi; line-height&colon; 18px&semi; orphans&colon; 2&semi; text-align&colon; left&semi; text-indent&colon; 0px&semi; text-transform&colon; none&semi; white-space&colon; normal&semi; widows&colon; 2&semi; word-spacing&colon; 0px&semi;">WEB-INF<&sol;b>&&num;8221&semi; folder&period;<&sol;p>&NewLine;<div class&equals;"separator" style&equals;"clear&colon; both&semi; text-align&colon; center&semi;"><img src&equals;"https&colon;&sol;&sol;dineshonjava&period;com&sol;wp-content&sol;uploads&sol;2013&sol;02&sol;databasesecutity&period;png" border&equals;"0" &sol;><&sol;div>&NewLine;<h2><b>Namespace Configuration&colon;<&sol;b><&sol;h2>&NewLine;<p>The namespace configuration of the spring provides lot of shortcuts that hides much of the complexity of the framework&period; To start with this configuration&comma; define a security filter in<i><b> web&period;xml <&sol;b><&sol;i>as shown below&colon;<br &sol;>&NewLine;<b style&equals;"-webkit-text-size-adjust&colon; auto&semi; -webkit-text-stroke-width&colon; 0px&semi; background-color&colon; white&semi; color&colon; &num;274e13&semi; font-family&colon; Arial&comma; Tahoma&comma; Helvetica&comma; FreeSans&comma; sans-serif&semi; font-size&colon; 13px&semi; font-style&colon; normal&semi; font-variant&colon; normal&semi; letter-spacing&colon; normal&semi; line-height&colon; 18px&semi; orphans&colon; 2&semi; text-align&colon; left&semi; text-indent&colon; 0px&semi; text-transform&colon; none&semi; white-space&colon; normal&semi; widows&colon; 2&semi; word-spacing&colon; 0px&semi;">Step 4&colon; <&sol;b>Configuring <i style&equals;"-webkit-text-size-adjust&colon; auto&semi; -webkit-text-stroke-width&colon; 0px&semi; background-color&colon; white&semi; color&colon; &num;274e13&semi; font-family&colon; Arial&comma; Tahoma&comma; Helvetica&comma; FreeSans&comma; sans-serif&semi; font-size&colon; 13px&semi; font-variant&colon; normal&semi; font-weight&colon; normal&semi; letter-spacing&colon; normal&semi; line-height&colon; 18px&semi; orphans&colon; 2&semi; text-align&colon; left&semi; text-indent&colon; 0px&semi; text-transform&colon; none&semi; white-space&colon; normal&semi; widows&colon; 2&semi; word-spacing&colon; 0px&semi;"><b>web&period;xml<&sol;b><&sol;i> for Spring Security<&sol;p>&NewLine;<pre class&equals;"highlight">&lt&semi;&quest;xml version&equals;"1&period;0" encoding&equals;"UTF-8"&quest;&gt&semi; &NewLine;&lt&semi;web-app version&equals;"2&period;5" xmlns&equals;"http&colon;&sol;&sol;java&period;sun&period;com&sol;xml&sol;ns&sol;javaee" &NewLine; xmlns&colon;xsi&equals;"http&colon;&sol;&sol;www&period;w3&period;org&sol;2001&sol;XMLSchema-instance" &NewLine; xsi&colon;schemaLocation&equals;"http&colon;&sol;&sol;java&period;sun&period;com&sol;xml&sol;ns&sol;javaee http&colon;&sol;&sol;java&period;sun&period;com&sol;xml&sol;ns&sol;javaee&sol;web-app&lowbar;2&lowbar;5&period;xsd"&gt&semi; &NewLine; &NewLine; &lt&semi;servlet&gt&semi; &NewLine; &lt&semi;servlet-name&gt&semi;sdnext&lt&semi;&sol;servlet-name&gt&semi; &NewLine; &lt&semi;servlet-class&gt&semi;org&period;springframework&period;web&period;servlet&period;DispatcherServlet&lt&semi;&sol;servlet-class&gt&semi; &NewLine; &lt&semi;load-on-startup&gt&semi;1&lt&semi;&sol;load-on-startup&gt&semi; &NewLine; &lt&semi;&sol;servlet&gt&semi; &NewLine; &NewLine; &lt&semi;servlet-mapping&gt&semi; &NewLine; &lt&semi;servlet-name&gt&semi;sdnext&lt&semi;&sol;servlet-name&gt&semi; &NewLine; &lt&semi;url-pattern&gt&semi;&sol;&lt&semi;&sol;url-pattern&gt&semi; &NewLine; &lt&semi;&sol;servlet-mapping&gt&semi; &NewLine; &lt&semi;listener&gt&semi; &NewLine; &lt&semi;listener-class&gt&semi; &NewLine; org&period;springframework&period;web&period;context&period;ContextLoaderListener &NewLine; &lt&semi;&sol;listener-class&gt&semi; &NewLine; &lt&semi;&sol;listener&gt&semi; &NewLine; &NewLine; &lt&semi;context-param&gt&semi; &NewLine; &lt&semi;param-name&gt&semi;contextConfigLocation&lt&semi;&sol;param-name&gt&semi; &NewLine; &lt&semi;param-value&gt&semi; &NewLine; &sol;WEB-INF&sol;sdnext-&ast;&period;xml&comma; &NewLine; &lt&semi;&sol;param-value&gt&semi; &NewLine; &lt&semi;&sol;context-param&gt&semi; &NewLine; &NewLine; &lt&semi;welcome-file-list&gt&semi; &NewLine; &lt&semi;welcome-file&gt&semi;index&lt&semi;&sol;welcome-file&gt&semi; &NewLine; &lt&semi;&sol;welcome-file-list&gt&semi; &NewLine; &NewLine; &lt&semi;&excl;-- Spring Security --&gt&semi; &NewLine; &lt&semi;filter&gt&semi; &NewLine; &lt&semi;filter-name&gt&semi;springSecurityFilterChain&lt&semi;&sol;filter-name&gt&semi; &NewLine; &lt&semi;filter-class&gt&semi; &NewLine; org&period;springframework&period;web&period;filter&period;DelegatingFilterProxy &NewLine; &lt&semi;&sol;filter-class&gt&semi; &NewLine; &lt&semi;&sol;filter&gt&semi; &NewLine; &NewLine; &lt&semi;filter-mapping&gt&semi; &NewLine; &lt&semi;filter-name&gt&semi;springSecurityFilterChain&lt&semi;&sol;filter-name&gt&semi; &NewLine; &lt&semi;url-pattern&gt&semi;&sol;&ast;&lt&semi;&sol;url-pattern&gt&semi; &NewLine; &lt&semi;&sol;filter-mapping&gt&semi; &NewLine; &NewLine;&lt&semi;&sol;web-app&gt&semi; &NewLine;<&sol;pre>&NewLine;<p>In the above configuration&comma; <i><b>DelegatingFilterProxy <&sol;b><&sol;i>delegates the control to a filter implementation which is defined as a bean named <i><b>springSecurityFilterChain<&sol;b><&sol;i>&period; This bean is an infrastructure internal bean to handle namespace configurations&period; Once this configuration is done&comma; all the incoming requests enter the spring framework for security checks&period;<&sol;p>&NewLine;<h2><b>Security Configuration&colon;<&sol;b><&sol;h2>&NewLine;<p>The security configuration is done in XML file and can have any name such as <b>sdnext-security&period;xml&period;<&sol;b> This file needs to be loaded explicitly from <b>web&period;xml<&sol;b>&period; This is done by adding <b>ContextLoadListener<&sol;b>&period; The following lines needs to be added before security filter definition in <b>web&period;xml&period;<&sol;b><&sol;p>&NewLine;<p><b><b style&equals;"-webkit-text-size-adjust&colon; auto&semi; -webkit-text-stroke-width&colon; 0px&semi; background-color&colon; white&semi; color&colon; &num;274e13&semi; font-family&colon; Arial&comma; Tahoma&comma; Helvetica&comma; FreeSans&comma; sans-serif&semi; font-size&colon; 13px&semi; font-style&colon; normal&semi; font-variant&colon; normal&semi; letter-spacing&colon; normal&semi; line-height&colon; 18px&semi; orphans&colon; 2&semi; text-align&colon; left&semi; text-indent&colon; 0px&semi; text-transform&colon; none&semi; white-space&colon; normal&semi; widows&colon; 2&semi; word-spacing&colon; 0px&semi;">Step 5&colon; <&sol;b>Spring Securing Configuration file &lpar;<b style&equals;"-webkit-text-size-adjust&colon; auto&semi; -webkit-text-stroke-width&colon; 0px&semi; background-color&colon; white&semi; color&colon; &num;274e13&semi; font-family&colon; Arial&comma; Tahoma&comma; Helvetica&comma; FreeSans&comma; sans-serif&semi; font-size&colon; 13px&semi; font-style&colon; normal&semi; font-variant&colon; normal&semi; letter-spacing&colon; normal&semi; line-height&colon; 18px&semi; orphans&colon; 2&semi; text-align&colon; left&semi; text-indent&colon; 0px&semi; text-transform&colon; none&semi; white-space&colon; normal&semi; widows&colon; 2&semi; word-spacing&colon; 0px&semi;"><i>sdnext-security&period;xml<&sol;i><&sol;b>&rpar;<&sol;b><br &sol;>&NewLine;<b>  <&sol;b><&sol;p>&NewLine;<pre class&equals;"highlight">&lt&semi;&quest;xml version&equals;"1&period;0" encoding&equals;"UTF-8"&quest;&gt&semi; &NewLine;&lt&semi;beans xmlns&equals;"http&colon;&sol;&sol;www&period;springframework&period;org&sol;schema&sol;beans" &NewLine; xmlns&colon;xsi&equals;"http&colon;&sol;&sol;www&period;w3&period;org&sol;2001&sol;XMLSchema-instance" &NewLine; xmlns&colon;> &NewLine;This configuration is done to enable form-login authentication model where the login page is <b>login&period;jsp<&sol;b>&period; Note that in the intercept tag&comma; pattern for <b>&sol;index&ast;<&sol;b> is given and access rule is defined as ROLE&lowbar;USER&period; That means <b>&sol;index&ast;<&sol;b> is redirect to <b>&sol;login<&sol;b> to checked for security&comma; which makes sense as login&period;jsp is the starting point from where the user is authenticated&period; &NewLine; &NewLine;The tag <b>&lt&semi;security&colon;authentication-manager&gt&semi;<&sol;b> processes the authentication information&semi; <b>&lt&semi;security&colon;authentication-provider&gt&semi;<&sol;b> defines the credential information and the roles given to each user &lpar;authentication information&rpar;&period; &NewLine;<b> &NewLine;<&sol;b> <b>Step 6&colon;<&sol;b> Spring Configuration File &lpar;<b>sdnext-servlet&period;xml<&sol;b>&rpar; &NewLine;<pre class&equals;"highlight">&lt&semi;&quest;xml version&equals;"1&period;0" encoding&equals;"UTF-8"&quest;&gt&semi; &NewLine;&lt&semi;beans xmlns&equals;"http&colon;&sol;&sol;www&period;springframework&period;org&sol;schema&sol;beans" &NewLine; xmlns&colon;xsi&equals;"http&colon;&sol;&sol;www&period;w3&period;org&sol;2001&sol;XMLSchema-instance" &NewLine; xmlns&colon;context&equals;"http&colon;&sol;&sol;www&period;springframework&period;org&sol;schema&sol;context" &NewLine; xmlns&colon;tx&equals;"http&colon;&sol;&sol;www&period;springframework&period;org&sol;schema&sol;tx" &NewLine; xsi&colon;schemaLocation&equals;" &NewLine;http&colon;&sol;&sol;www&period;springframework&period;org&sol;schema&sol;beans &NewLine;http&colon;&sol;&sol;www&period;springframework&period;org&sol;schema&sol;beans&sol;spring-beans-3&period;0&period;xsd &NewLine;http&colon;&sol;&sol;www&period;springframework&period;org&sol;schema&sol;context &NewLine;http&colon;&sol;&sol;www&period;springframework&period;org&sol;schema&sol;context&sol;spring-context-3&period;0&period;xsd &NewLine;http&colon;&sol;&sol;www&period;springframework&period;org&sol;schema&sol;tx &NewLine;http&colon;&sol;&sol;www&period;springframework&period;org&sol;schema&sol;tx&sol;spring-tx-3&period;0&period;xsd"&gt&semi; &NewLine; &NewLine; &lt&semi;context&colon;property-placeholder location&equals;"classpath&colon;resources&sol;database&period;properties" &sol;&gt&semi; &NewLine; &lt&semi;context&colon;component-scan base-package&equals;"com&period;dineshonjava&period;security" &sol;&gt&semi; &NewLine; &NewLine; &lt&semi;tx&colon;annotation-driven transaction-manager&equals;"hibernateTransactionManager"&sol;&gt&semi; &NewLine; &NewLine; &lt&semi;bean id&equals;"jspViewResolver" &NewLine; class&equals;"org&period;springframework&period;web&period;servlet&period;view&period;InternalResourceViewResolver"&gt&semi; &NewLine; &lt&semi;property name&equals;"viewClass" &NewLine; value&equals;"org&period;springframework&period;web&period;servlet&period;view&period;JstlView" &sol;&gt&semi; &NewLine; &lt&semi;property name&equals;"prefix" value&equals;"&sol;WEB-INF&sol;views&sol;" &sol;&gt&semi; &NewLine; &lt&semi;property name&equals;"suffix" value&equals;"&period;jsp" &sol;&gt&semi; &NewLine; &lt&semi;&sol;bean&gt&semi; &NewLine; &NewLine; &lt&semi;bean id&equals;"dataSource" &NewLine; class&equals;"org&period;springframework&period;jdbc&period;datasource&period;DriverManagerDataSource"&gt&semi; &NewLine; &lt&semi;property name&equals;"driverClassName" value&equals;"&dollar;&lbrace;database&period;driver&rcub;" &sol;&gt&semi; &NewLine; &lt&semi;property name&equals;"url" value&equals;"&dollar;&lbrace;database&period;url&rcub;" &sol;&gt&semi; &NewLine; &lt&semi;property name&equals;"username" value&equals;"&dollar;&lbrace;database&period;user&rcub;" &sol;&gt&semi; &NewLine; &lt&semi;property name&equals;"password" value&equals;"&dollar;&lbrace;database&period;password&rcub;" &sol;&gt&semi; &NewLine; &lt&semi;&sol;bean&gt&semi; &NewLine; &NewLine; &lt&semi;bean id&equals;"sessionFactory" &NewLine; class&equals;"org&period;springframework&period;orm&period;hibernate3&period;annotation&period;AnnotationSessionFactoryBean"&gt&semi; &NewLine; &lt&semi;property name&equals;"dataSource" ref&equals;"dataSource" &sol;&gt&semi; &NewLine; &lt&semi;property name&equals;"hibernateProperties"&gt&semi; &NewLine; &lt&semi;props&gt&semi; &NewLine; &lt&semi;prop key&equals;"hibernate&period;dialect"&gt&semi;&dollar;&lbrace;hibernate&period;dialect&rcub;&lt&semi;&sol;prop&gt&semi; &NewLine; &lt&semi;prop key&equals;"hibernate&period;show&lowbar;sql"&gt&semi;&dollar;&lbrace;hibernate&period;show&lowbar;sql&rcub;&lt&semi;&sol;prop&gt&semi; &NewLine; &lt&semi;prop key&equals;"hibernate&period;hbm2ddl&period;auto"&gt&semi;&dollar;&lbrace;hibernate&period;hbm2ddl&period;auto&rcub;&lt&semi;&sol;prop&gt&semi; &NewLine; &lt&semi;&sol;props&gt&semi; &NewLine; &lt&semi;&sol;property&gt&semi; &NewLine; &lt&semi;&sol;bean&gt&semi; &NewLine; &NewLine;&lt&semi;&sol;beans&gt&semi; &NewLine;<&sol;pre>&NewLine;<p><b>Step 7&colon; Creating LoginController class &lpar;LoginController&period;java&rpar;<&sol;b><&sol;p>&NewLine;<pre class&equals;"highlight">package com&period;dineshonjava&period;security&period;controller&semi; &NewLine; &NewLine;import java&period;security&period;Principal&semi; &NewLine; &NewLine;import org&period;springframework&period;stereotype&period;Controller&semi; &NewLine;import org&period;springframework&period;ui&period;ModelMap&semi; &NewLine;import org&period;springframework&period;web&period;bind&period;annotation&period;RequestMapping&semi; &NewLine;import org&period;springframework&period;web&period;bind&period;annotation&period;RequestMethod&semi; &NewLine; &NewLine;&sol;&ast;&ast; &NewLine; &ast; &commat;author Dinesh Rajput &NewLine; &ast; &NewLine; &ast;&sol; &NewLine;&commat;Controller &NewLine;public class LoginController &lbrace; &NewLine; &NewLine; &commat;RequestMapping&lpar;value&equals;"&sol;index"&comma; method &equals; RequestMethod&period;GET&rpar; &NewLine; public String executeSecurity&lpar;ModelMap model&comma; Principal principal &rpar; &lbrace; &NewLine; &NewLine; String name &equals; principal&period;getName&lpar;&rpar;&semi; &NewLine; model&period;addAttribute&lpar;"author"&comma; name&rpar;&semi; &NewLine; model&period;addAttribute&lpar;"message"&comma; "Welcome To Login Form Based Spring Security Example&excl;&excl;&excl;"&rpar;&semi; &NewLine; return "welcome"&semi; &NewLine; &NewLine; &rcub; &NewLine; &NewLine; &commat;RequestMapping&lpar;value&equals;"&sol;login"&comma; method &equals; RequestMethod&period;GET&rpar; &NewLine; public String login&lpar;ModelMap model&rpar; &lbrace; &NewLine; &NewLine; return "login"&semi; &NewLine; &NewLine; &rcub; &NewLine; &NewLine; &commat;RequestMapping&lpar;value&equals;"&sol;fail2login"&comma; method &equals; RequestMethod&period;GET&rpar; &NewLine; public String loginerror&lpar;ModelMap model&rpar; &lbrace; &NewLine; &NewLine; model&period;addAttribute&lpar;"error"&comma; "true"&rpar;&semi; &NewLine; return "login"&semi; &NewLine; &NewLine; &rcub; &NewLine; &NewLine; &commat;RequestMapping&lpar;value&equals;"&sol;logout"&comma; method &equals; RequestMethod&period;GET&rpar; &NewLine; public String logout&lpar;ModelMap model&rpar; &lbrace; &NewLine; &NewLine; return "login"&semi; &NewLine; &NewLine; &rcub; &NewLine;&rcub; &NewLine;<&sol;pre>&NewLine;<p><b>Creating database&period;properties<&sol;b><&sol;p>&NewLine;<pre class&equals;"highlight">database&period;driver&equals;com&period;mysql&period;jdbc&period;Driver &NewLine;database&period;url&equals;jdbc&colon;mysql&colon;&sol;&sol;localhost&colon;3306&sol;DAVDB &NewLine;database&period;user&equals;root &NewLine;database&period;password&equals;root &NewLine;hibernate&period;dialect&equals;org&period;hibernate&period;dialect&period;MySQLDialect &NewLine;hibernate&period;show&lowbar;sql&equals;true &NewLine;hibernate&period;hbm2ddl&period;auto&equals;update &NewLine;<&sol;pre>&NewLine;<h2><b>JSP Views-<&sol;b><&sol;h2>&NewLine;<p>In custom login form&comma; you have to follow Spring Security standard name &colon;<br &sol;>&NewLine;1&period; j&lowbar;spring&lowbar;security&lowbar;check – Login service<br &sol;>&NewLine;2&period; j&lowbar;spring&lowbar;security&lowbar;logout – Logout service<br &sol;>&NewLine;3&period; j&lowbar;username – Username<br &sol;>&NewLine;4&period; j&lowbar;password – Password<br &sol;>&NewLine;<b>Step 8&colon; Creating welcome page &lpar;welcome&period;jsp&rpar;<&sol;b><&sol;p>&NewLine;<pre class&equals;"highlight">&lt&semi;&percnt;&commat; page language&equals;"java" contentType&equals;"text&sol;html&semi; charset&equals;ISO-8859-1" &NewLine; pageEncoding&equals;"ISO-8859-1"&percnt;&gt&semi; &NewLine;&lt&semi;&excl;DOCTYPE html PUBLIC "-&sol;&sol;W3C&sol;&sol;DTD HTML 4&period;01 Transitional&sol;&sol;EN" "http&colon;&sol;&sol;www&period;w3&period;org&sol;TR&sol;html4&sol;loose&period;dtd"&gt&semi; &NewLine;&lt&semi;&percnt;&commat; taglib prefix&equals;"c" uri&equals;"http&colon;&sol;&sol;java&period;sun&period;com&sol;jsp&sol;jstl&sol;core"&percnt;&gt&semi; &NewLine;&lt&semi;html&gt&semi; &NewLine;&lt&semi;head&gt&semi; &NewLine;&lt&semi;meta http-equiv&equals;"Content-Type" content&equals;"text&sol;html&semi; charset&equals;ISO-8859-1"&gt&semi; &NewLine;&lt&semi;title&gt&semi;WELCOME TO SECURE AREA&lt&semi;&sol;title&gt&semi; &NewLine;&lt&semi;&sol;head&gt&semi; &NewLine;&lt&semi;body&gt&semi; &NewLine; &lt&semi;h1&gt&semi;Message &colon; &dollar;&lbrace;message&rcub;&lt&semi;&sol;h1&gt&semi; &NewLine; &lt&semi;h1&gt&semi;Author &colon; &dollar;&lbrace;author&rcub;&lt&semi;&sol;h1&gt&semi; &NewLine; &lt&semi;a href&equals;'&lt&semi;c&colon;url value&equals;"&sol;j&lowbar;spring&lowbar;security&lowbar;logout" &sol;&gt&semi;' &gt&semi; Logout&lt&semi;&sol;a&gt&semi; &NewLine;&lt&semi;&sol;body&gt&semi; &NewLine;&lt&semi;&sol;html&gt&semi; &NewLine;<&sol;pre>&NewLine;<p><b>login&period;jsp<&sol;b><&sol;p>&NewLine;<pre class&equals;"highlight">&lt&semi;&percnt;&commat; page language&equals;"java" contentType&equals;"text&sol;html&semi; charset&equals;ISO-8859-1" &NewLine; pageEncoding&equals;"ISO-8859-1"&percnt;&gt&semi; &NewLine;&lt&semi;&excl;DOCTYPE html PUBLIC "-&sol;&sol;W3C&sol;&sol;DTD HTML 4&period;01 Transitional&sol;&sol;EN" "http&colon;&sol;&sol;www&period;w3&period;org&sol;TR&sol;html4&sol;loose&period;dtd"&gt&semi; &NewLine;&lt&semi;&percnt;&commat; taglib prefix&equals;"c" uri&equals;"http&colon;&sol;&sol;java&period;sun&period;com&sol;jsp&sol;jstl&sol;core"&percnt;&gt&semi; &NewLine;&lt&semi;html&gt&semi; &NewLine;&lt&semi;head&gt&semi; &NewLine;&lt&semi;title&gt&semi;Login Page For Security&lt&semi;&sol;title&gt&semi; &NewLine;&lt&semi;style&gt&semi; &NewLine;&period;errorblock &lbrace; &NewLine; color&colon; &num;ff0000&semi; &NewLine; background-color&colon; &num;ffEEEE&semi; &NewLine; border&colon; 3px solid &num;ff0000&semi; &NewLine; padding&colon; 8px&semi; &NewLine; margin&colon; 16px&semi; &NewLine;&rcub; &NewLine;&lt&semi;&sol;style&gt&semi; &NewLine;&lt&semi;&sol;head&gt&semi; &NewLine;&lt&semi;body onload&equals;'document&period;f&period;j&lowbar;username&period;focus&lpar;&rpar;&semi;'&gt&semi; &NewLine; &lt&semi;h3&gt&semi;Login with Username and Password &lpar;Custom Login Page&rpar;&lt&semi;&sol;h3&gt&semi; &NewLine; &NewLine; &lt&semi;c&colon;if test&equals;"&dollar;&lbrace;not empty error&rcub;"&gt&semi; &NewLine; &lt&semi;div class&equals;"errorblock"&gt&semi; &NewLine; Your login attempt was not successful&comma; try again&period;&lt&semi;br &sol;&gt&semi; Caused &colon; &NewLine; &dollar;&lbrace;sessionScope&lbrack;"SPRING&lowbar;SECURITY&lowbar;LAST&lowbar;EXCEPTION"&rsqb;&period;message&rcub; &NewLine; &lt&semi;&sol;div&gt&semi; &NewLine; &lt&semi;&sol;c&colon;if&gt&semi; &NewLine; &NewLine; &lt&semi;form name&equals;'f' action&equals;"&lt&semi;c&colon;url value&equals;'j&lowbar;spring&lowbar;security&lowbar;check' &sol;&gt&semi;" &NewLine; method&equals;'POST'&gt&semi; &NewLine; &NewLine; &lt&semi;table&gt&semi; &NewLine; &lt&semi;tr&gt&semi; &NewLine; &lt&semi;td&gt&semi;User&colon;&lt&semi;&sol;td&gt&semi; &NewLine; &lt&semi;td&gt&semi;&lt&semi;input type&equals;'text' name&equals;'j&lowbar;username' value&equals;''&gt&semi; &NewLine; &lt&semi;&sol;td&gt&semi; &NewLine; &lt&semi;&sol;tr&gt&semi; &NewLine; &lt&semi;tr&gt&semi; &NewLine; &lt&semi;td&gt&semi;Password&colon;&lt&semi;&sol;td&gt&semi; &NewLine; &lt&semi;td&gt&semi;&lt&semi;input type&equals;'password' name&equals;'j&lowbar;password' &sol;&gt&semi; &NewLine; &lt&semi;&sol;td&gt&semi; &NewLine; &lt&semi;&sol;tr&gt&semi; &NewLine; &lt&semi;tr&gt&semi; &NewLine; &lt&semi;td colspan&equals;'2'&gt&semi;&lt&semi;input name&equals;"submit" type&equals;"submit" &NewLine; value&equals;"submit" &sol;&gt&semi; &NewLine; &lt&semi;&sol;td&gt&semi; &NewLine; &lt&semi;&sol;tr&gt&semi; &NewLine; &lt&semi;tr&gt&semi; &NewLine; &lt&semi;td colspan&equals;'2'&gt&semi;&lt&semi;input name&equals;"reset" type&equals;"reset" &sol;&gt&semi; &NewLine; &lt&semi;&sol;td&gt&semi; &NewLine; &lt&semi;&sol;tr&gt&semi; &NewLine; &lt&semi;&sol;table&gt&semi; &NewLine; &NewLine; &lt&semi;&sol;form&gt&semi; &NewLine;&lt&semi;&sol;body&gt&semi; &NewLine;&lt&semi;&sol;html&gt&semi; &NewLine;<&sol;pre>&NewLine;<p>Step 9&colon; Create an database "DAVDB" and two tables "USERS" and other "USER&lowbar;ROLES" for Spring Security for our application as follows&period;<br &sol;>&NewLine;<b>USERS Table<&sol;b><&sol;p>&NewLine;<pre class&equals;"highlight">CREATE TABLE &grave;users&grave; &lpar; &NewLine; &grave;USER&lowbar;ID&grave; int&lpar;10&rpar; unsigned NOT NULL&comma; &NewLine; &grave;USERNAME&grave; varchar&lpar;40&rpar; NOT NULL&comma; &NewLine; &grave;PASSWORD&grave; varchar&lpar;40&rpar; NOT NULL&comma; &NewLine; &grave;ACTIVE&grave; tinyint&lpar;1&rpar; NOT NULL&comma; &NewLine; PRIMARY KEY &lpar;&grave;USER&lowbar;ID&grave;&rpar; &NewLine;&rpar; ENGINE&equals;InnoDB DEFAULT CHARSET&equals;latin1 &NewLine;<&sol;pre>&NewLine;<p><b>USER&lowbar;ROLES table<&sol;b><&sol;p>&NewLine;<pre class&equals;"highlight">Create Table &NewLine; &NewLine;CREATE TABLE &grave;user&lowbar;roles&grave; &lpar; &NewLine; &grave;USER&lowbar;ROLE&lowbar;ID&grave; int&lpar;10&rpar; unsigned NOT NULL&comma; &NewLine; &grave;USER&lowbar;ID&grave; int&lpar;10&rpar; unsigned NOT NULL&comma; &NewLine; &grave;AUTHORITY&grave; varchar&lpar;45&rpar; NOT NULL&comma; &NewLine; PRIMARY KEY &lpar;&grave;USER&lowbar;ROLE&lowbar;ID&grave;&rpar;&comma; &NewLine; KEY &grave;FK&lowbar;user&lowbar;roles&grave; &lpar;&grave;USER&lowbar;ID&grave;&rpar;&comma; &NewLine; CONSTRAINT &grave;FK&lowbar;user&lowbar;roles&grave; FOREIGN KEY &lpar;&grave;USER&lowbar;ID&grave;&rpar; REFERENCES &grave;users&grave; &lpar;&grave;USER&lowbar;ID&grave;&rpar; &NewLine;&rpar; ENGINE&equals;InnoDB DEFAULT CHARSET&equals;latin1 &NewLine; &NewLine;<&sol;pre>&NewLine;<p>&nbsp&semi;<&sol;p>&NewLine;<pre class&equals;"highlight">INSERT INTO &grave;DAVDB&grave;&period;&grave;user&lowbar;roles&grave; &NewLine; &lpar;&grave;USER&lowbar;ROLE&lowbar;ID&grave;&comma; &NewLine; &grave;USER&lowbar;ID&grave;&comma; &NewLine; &grave;AUTHORITY&grave; &NewLine; &rpar; &NewLine; VALUES &NewLine; &lpar;'1'&comma; &NewLine; '1'&comma; &NewLine; 'ROLE&lowbar;USER' &NewLine; &rpar;&semi; &NewLine; &NewLine;<&sol;pre>&NewLine;<pre class&equals;"highlight">INSERT INTO &grave;DAVDB&grave;&period;&grave;users&grave; &NewLine; &lpar;&grave;USER&lowbar;ID&grave;&comma; &NewLine; &grave;USERNAME&grave;&comma; &NewLine; &grave;PASSWORD&grave;&comma; &NewLine; &grave;ACTIVE&grave; &NewLine; &rpar; &NewLine; VALUES &NewLine; &lpar;'1'&comma; &NewLine; 'dineshonjava'&comma; &NewLine; 'sweety'&comma; &NewLine; '1' &NewLine; &rpar;&semi; &NewLine;<&sol;pre>&NewLine;<p><b>Step 10&colon; Running the example<&sol;b><&sol;p>&NewLine;<p>Export the example as war and deploy it Tomcat 7 server&period; While browsing the project you will get the following screen for login&colon;<&sol;p>&NewLine;<p>Access URL <b>&OpenCurlyDoubleQuote;<i>http&colon;&sol;&sol;localhost&colon;8080&sol;sdnext&sol;index<&sol;i><&sol;b>&OpenCurlyDoubleQuote;&comma; Spring will redirect to your custom login form&period;<br &sol;>&NewLine;<b><i>URL &colon; http&colon;&sol;&sol;localhost&colon;8080&sol;<&sol;i><i><i>sdnext<&sol;i>&sol;login<&sol;i><&sol;b><&sol;p>&NewLine;<div class&equals;"separator" style&equals;"clear&colon; both&semi; text-align&colon; center&semi;"><img src&equals;"https&colon;&sol;&sol;dineshonjava&period;com&sol;wp-content&sol;uploads&sol;2013&sol;02&sol;databasesecutity1&period;png" border&equals;"0" &sol;><&sol;div>&NewLine;<p><b>If username&sol;password is wrong&comma; authentication failed&comma; display custom error messages&period;<&sol;b><br &sol;>&NewLine;<b><br &sol;>&NewLine;<&sol;b> <i><b>URL &colon; http&colon;&sol;&sol;localhost&colon;8080&sol;<i>sdnext<&sol;i>&sol;fail2login<&sol;b><&sol;i><&sol;p>&NewLine;<div class&equals;"separator" style&equals;"clear&colon; both&semi; text-align&colon; center&semi;"><img src&equals;"https&colon;&sol;&sol;dineshonjava&period;com&sol;wp-content&sol;uploads&sol;2013&sol;02&sol;securitylogin2&period;png" border&equals;"0" &sol;><&sol;div>&NewLine;<p><b>If username&sol;password is correct&comma; authentication success&comma; display requested page&period;<&sol;b><br &sol;>&NewLine;<b><br &sol;>&NewLine;<&sol;b> <i><b>URL &colon; http&colon;&sol;&sol;localhost&colon;8080&sol;sdnext&sol;index<&sol;b><&sol;i><&sol;p>&NewLine;<div class&equals;"separator" style&equals;"clear&colon; both&semi; text-align&colon; center&semi;"><img src&equals;"https&colon;&sol;&sol;dineshonjava&period;com&sol;wp-content&sol;uploads&sol;2013&sol;02&sol;securitylogin3&period;png" width&equals;"600" height&equals;"216" border&equals;"0" &sol;><&sol;div>&NewLine;<p><b>If username&sol;password is correct&comma; authentication success&comma; display requested page&period;<&sol;b><br &sol;>&NewLine;<b>on requested page click on <i>Logout <&sol;i>link&period;<&sol;b><br &sol;>&NewLine;<b><br &sol;>&NewLine;<&sol;b> <i><b>URL &colon; http&colon;&sol;&sol;localhost&colon;8080&sol;sdnext&sol;logout<&sol;b><&sol;i><&sol;p>&NewLine;<div class&equals;"separator" style&equals;"clear&colon; both&semi; text-align&colon; center&semi;"><img src&equals;"https&colon;&sol;&sol;dineshonjava&period;com&sol;wp-content&sol;uploads&sol;2013&sol;02&sol;securitylogin4&period;png" border&equals;"0" &sol;><&sol;div>&NewLine;<p>&nbsp&semi;<&sol;p>&NewLine;<h3><b>Download Source Code &plus; Libs<&sol;b><br &sol;>&NewLine;<a href&equals;"https&colon;&sol;&sol;sites&period;google&period;com&sol;site&sol;dinesh9582486434&sol;my-forms&sol;SpringSecurityLoginDatabase&period;zip&quest;attredirects&equals;0&amp&semi;d&equals;1" target&equals;"&lowbar;blank" rel&equals;"noopener"><b>SpringSecurityLoginDatabase&period;zip<&sol;b><&sol;a><&sol;h3>&NewLine;<p>&nbsp&semi;<&sol;p>&NewLine;<p><b>References- <&sol;b><br &sol;>&NewLine;<a href&equals;"https&colon;&sol;&sol;dineshonjava&period;com&sol;spring-security-form-based-login-example&sol;" target&equals;"&lowbar;blank" rel&equals;"noopener"><b>https&colon;&sol;&sol;dineshonjava&period;com&sol;spring-security-form-based-login-example&sol;<&sol;b><&sol;a><br &sol;>&NewLine;<a href&equals;"http&colon;&sol;&sol;static&period;springsource&period;org&sol;spring-security&sol;site&sol;" target&equals;"&lowbar;blank" rel&equals;"noopener"><b>Spring Security<&sol;b><&sol;a><br &sol;>&NewLine;<a href&equals;"http&colon;&sol;&sol;static&period;springsource&period;org&sol;spring-security&sol;site&sol;docs&sol;3&period;0&period;x&sol;reference&sol;springsecurity&period;html" target&equals;"&lowbar;blank" rel&equals;"noopener"><b>Spring Security documentation<&sol;b><&sol;a><&sol;p>&NewLine;<div style&equals;"background-color&colon; &num;f2f9fc&semi; border-radius&colon; 3px&semi; border&colon; 1px solid &num;c9e6f2&semi; line-height&colon; 1&period;45&semi; padding&colon; 16px&semi;"><span style&equals;"color&colon; red&semi; font-size&colon; x-large&semi; text-align&colon; center&semi;"><b>Spring Security Related Posts<&sol;b><&sol;span><&sol;p>&NewLine;<ul>&NewLine;<li><b><a href&equals;"https&colon;&sol;&sol;dineshonjava&period;com&sol;spring-security-interview-questions-and-answers&sol;"><span style&equals;"color&colon; red&semi;">Spring Security Interview Questions and Answers<&sol;span><&sol;a><&sol;b><&sol;li>&NewLine;<li><b><a href&equals;"https&colon;&sol;&sol;dineshonjava&period;com&sol;spring-security-java-based-configuration-with-example&sol;"><span style&equals;"color&colon; red&semi;">Spring Security Java Based Configuration with Example<&sol;span><&sol;a><&sol;b><&sol;li>&NewLine;<li><b><a href&equals;"https&colon;&sol;&sol;dineshonjava&period;com&sol;spring-security-xml-namespace-configuration-example&sol;"><span style&equals;"color&colon; red&semi;">Spring Security XML Namespace Configuration Example<&sol;span><&sol;a><&sol;b><&sol;li>&NewLine;<li><b><a href&equals;"https&colon;&sol;&sol;dineshonjava&period;com&sol;spring-security-hello-world-example&sol;"><span style&equals;"color&colon; red&semi;">Spring Security XML Based Hello World Example<&sol;span><&sol;a><&sol;b><&sol;li>&NewLine;<li><b><a href&equals;"https&colon;&sol;&sol;dineshonjava&period;com&sol;spring-security-form-based-login-example&sol;"><span style&equals;"color&colon; red&semi;">Spring Security form-based login example <&sol;span><&sol;a><&sol;b><&sol;li>&NewLine;<li><b><a href&equals;"https&colon;&sol;&sol;dineshonjava&period;com&sol;spring-security-login-form-using&sol;"><span style&equals;"color&colon; red&semi;">Spring Security Login Form Based Example Using Database<&sol;span><&sol;a><&sol;b><&sol;li>&NewLine;<li><b><a href&equals;"https&colon;&sol;&sol;dineshonjava&period;com&sol;spring-security-http-basic&sol;"><span style&equals;"color&colon; red&semi;">Spring Security Authentication Example Using HTTP Basic <&sol;span><&sol;a><&sol;b><&sol;li>&NewLine;<li><b><a href&equals;"https&colon;&sol;&sol;dineshonjava&period;com&sol;spring-security-authorized-access&sol;"><span style&equals;"color&colon; red&semi;"> Spring Security Authorized Access Control Example <&sol;span><&sol;a><&sol;b><&sol;li>&NewLine;<li><b><a href&equals;"https&colon;&sol;&sol;dineshonjava&period;com&sol;customize-http-403-access-denied-page&sol;"><span style&equals;"color&colon; red&semi;">Spring Security Customized Access Denied Page<&sol;span><&sol;a><&sol;b><&sol;li>&NewLine;<li><b><a href&equals;"https&colon;&sol;&sol;dineshonjava&period;com&sol;spring-security-custom-error-message&sol;"><span style&equals;"color&colon; red&semi;">Spring Security Custom Error Message<&sol;span><&sol;a><&sol;b><&sol;li>&NewLine;<li><b><a href&equals;"https&colon;&sol;&sol;dineshonjava&period;com&sol;spring-security-logout-example&sol;"><span style&equals;"color&colon; red&semi;"> Spring Security Logout Example<&sol;span><&sol;a><&sol;b><&sol;li>&NewLine;<li><b><a href&equals;"https&colon;&sol;&sol;dineshonjava&period;com&sol;spring-security-fetch-logged-in-username&sol;"><span style&equals;"color&colon; red&semi;">Spring Security Fetch Logged in Username<&sol;span><&sol;a><&sol;b><&sol;li>&NewLine;<li><b><a href&equals;"https&colon;&sol;&sol;dineshonjava&period;com&sol;spring-security-password-hashing&sol;"><span style&equals;"color&colon; red&semi;">Spring Security Password Hashing<&sol;span><&sol;a><&sol;b><&sol;li>&NewLine;<&sol;ul>&NewLine;<p>&nbsp&semi;<&sol;p>&NewLine;<&sol;div>&NewLine;<p>&nbsp&semi;<&sol;p>&NewLine;<div style&equals;"background-color&colon; &num;ff99cc&semi;">                        <b>     &lt&semi;&lt&semi;<a href&equals;"https&colon;&sol;&sol;dineshonjava&period;com&sol;spring-security-hello-world-example&sol;">previous<&sol;a>&lt&semi;&lt&semi;             &vert;&vert; <a href&equals;"https&colon;&sol;&sol;dineshonjava&period;com&sol;spring-security-take-baby-step-to-secure&sol;">index  <&sol;a>&vert;&vert;         &gt&semi;&gt&semi;<a href&equals;"https&colon;&sol;&sol;dineshonjava&period;com&sol;spring-security-http-basic&sol;">next<&sol;a>&gt&semi;&gt&semi;<&sol;b><&sol;div>&NewLine;<p>&nbsp&semi;<&sol;p>&NewLine;<&sol;div>&NewLine;<div class&equals;"wp-post-navigation"> &NewLine;&Tab;&Tab;&Tab;&Tab;&Tab;&Tab;&Tab;&Tab;&Tab; <div class&equals;"wp-post-navigation-pre"> &NewLine;&Tab;&Tab;&Tab;&Tab;&Tab;&Tab;&Tab;&Tab;&Tab; <a href&equals;"https&colon;&sol;&sol;dineshonjava&period;com&sol;spring-security-form-based-login-example&sol;">Previous<&sol;a> &NewLine;&Tab;&Tab;&Tab;&Tab;&Tab;&Tab;&Tab;&Tab;&Tab; <&sol;div> &NewLine;&Tab;&Tab;&Tab;&Tab;&Tab;&Tab;&Tab;&Tab;&Tab; <div class&equals;"wp-post-navigation-next"> &NewLine;&Tab;&Tab;&Tab;&Tab;&Tab;&Tab;&Tab;&Tab;&Tab; <a href&equals;"https&colon;&sol;&sol;dineshonjava&period;com&sol;spring-security-http-basic&sol;">Next<&sol;a> &NewLine;&Tab;&Tab;&Tab;&Tab;&Tab;&Tab;&Tab;&Tab;&Tab; <&sol;div> &NewLine;&Tab;&Tab;&Tab;&Tab;&Tab;&Tab;&Tab;&Tab;&Tab;<&sol;div>&NewLine;<script type&equals;"text&sol;javascript">&NewLine;jQuery&lpar;document&rpar;&period;ready&lpar;function&lpar;&dollar;&rpar; &lbrace;&NewLine; &dollar;&period;post&lpar;'https&colon;&sol;&sol;dineshonjava&period;com&sol;wp-admin&sol;admin-ajax&period;php'&comma; &lbrace;action&colon; 'mts&lowbar;view&lowbar;count'&comma; id&colon; '577'&rcub;&rpar;&semi;&NewLine;&rcub;&rpar;&semi;&NewLine;<&sol;script>

Dinesh Rajput

Dinesh Rajput is the chief editor of a website Dineshonjava, a technical blog dedicated to the Spring and Java technologies. It has a series of articles related to Java technologies. Dinesh has been a Spring enthusiast since 2008 and is a Pivotal Certified Spring Professional, an author of a book Spring 5 Design Pattern, and a blogger. He has more than 10 years of experience with different aspects of Spring and Java design and development. His core expertise lies in the latest version of Spring Framework, Spring Boot, Spring Security, creating REST APIs, Microservice Architecture, Reactive Pattern, Spring AOP, Design Patterns, Struts, Hibernate, Web Services, Spring Batch, Cassandra, MongoDB, and Web Application Design and Architecture. He is currently working as a technology manager at a leading product and web development company. He worked as a developer and tech lead at the Bennett, Coleman & Co. Ltd and was the first developer in his previous company, Paytm. Dinesh is passionate about the latest Java technologies and loves to write technical blogs related to it. He is a very active member of the Java and Spring community on different forums. When it comes to the Spring Framework and Java, Dinesh tops the list!

Share
Published by
Dinesh Rajput

Recent Posts

Strategy Design Patterns using Lambda

Strategy Design Patterns We can easily create a strategy design pattern using lambda. To implement…

4 years ago

Decorator Pattern using Lambda

Decorator Pattern A decorator pattern allows a user to add new functionality to an existing…

4 years ago

Delegating pattern using lambda

Delegating pattern In software engineering, the delegation pattern is an object-oriented design pattern that allows…

4 years ago

Spring Vs Django- Know The Difference Between The Two

Technology has emerged a lot in the last decade, and now we have artificial intelligence;…

4 years ago

TOP 20 MongoDB INTERVIEW QUESTIONS 2022

Managing a database is becoming increasingly complex now due to the vast amount of data…

4 years ago

Scheduler @Scheduled Annotation Spring Boot

Overview In this article, we will explore Spring Scheduler how we could use it by…

4 years ago