

{"id":20905,"date":"2018-07-12T04:10:30","date_gmt":"2018-07-12T04:10:30","guid":{"rendered":"https:\/\/data-flair.training\/blogs\/?p=20905"},"modified":"2018-09-15T12:27:20","modified_gmt":"2018-09-15T06:57:20","slug":"spring-security-tutorial","status":"publish","type":"post","link":"https:\/\/data-flair.training\/blogs\/spring-security-tutorial\/","title":{"rendered":"Spring Security Tutorial Step By Step &#8211; Example &amp; Advantages"},"content":{"rendered":"<div class='__iawmlf-post-loop-links' style='display:none;' data-iawmlf-post-links='[{&quot;id&quot;:1890,&quot;href&quot;:&quot;https:\\\/\\\/spring.io\\\/projects\\\/spring-security&quot;,&quot;archived_href&quot;:&quot;http:\\\/\\\/web-wp.archive.org\\\/web\\\/20251210064904\\\/https:\\\/\\\/spring.io\\\/projects\\\/spring-security\\\/&quot;,&quot;redirect_href&quot;:&quot;https:\\\/\\\/spring.io\\\/projects\\\/spring-security\\\/&quot;,&quot;checks&quot;:[{&quot;date&quot;:&quot;2026-01-05 13:49:07&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-01-24 13:14:55&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-02-02 07:38:59&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-02-10 14:55:48&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-02-21 05:51:55&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-03-01 20:29:32&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-03-09 13:20:11&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-03-25 05:42:24&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-04-14 08:58:58&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-04-21 04:22:21&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-04-25 02:21:57&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-05-06 03:09:55&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-05-17 16:00:48&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-05-27 08:43:56&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-06-08 06:50:06&quot;,&quot;http_code&quot;:200}],&quot;broken&quot;:false,&quot;last_checked&quot;:{&quot;date&quot;:&quot;2026-06-08 06:50:06&quot;,&quot;http_code&quot;:200},&quot;process&quot;:&quot;done&quot;}]'><\/div>\n<h2 class=\"western\">1. Objective<\/h2>\n<p>In our last tutorial, we studied\u00a0<a href=\"https:\/\/data-flair.training\/blogs\/spring-web-services\/\"><strong>Spring Web Services<\/strong><\/a>.\u00a0In this Spring Security tutorial, we are going to learn about security features of\u00a0<a href=\"https:\/\/data-flair.training\/blogs\/spring-framework-tutorial\/\"><strong>Spring Framework<\/strong><\/a>. Along with that, we will see the advantages of Spring Security and why security features are needed in Spring with an example using Eclipse IDE in place.<br \/>\nSo, let&#8217;s start the Spring Security Tutorial.<\/p>\n<div id=\"attachment_20923\" style=\"width: 1210px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/07\/Spring-Security-01-1.jpg\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-20923\" class=\"wp-image-20923 size-full\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/07\/Spring-Security-01-1.jpg\" alt=\"Spring Security Tutorial Step By Step - Example &amp;amp; Advantages\" width=\"1200\" height=\"628\" srcset=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/07\/Spring-Security-01-1.jpg 1200w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/07\/Spring-Security-01-1-150x79.jpg 150w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/07\/Spring-Security-01-1-300x157.jpg 300w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/07\/Spring-Security-01-1-768x402.jpg 768w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/07\/Spring-Security-01-1-1024x536.jpg 1024w\" sizes=\"auto, (max-width: 1200px) 100vw, 1200px\" \/><\/a><p id=\"caption-attachment-20923\" class=\"wp-caption-text\">Spring Security Tutorial Step By Step &#8211; Example &amp; Advantages<\/p><\/div>\n<h2 class=\"western\">2. Spring Security<\/h2>\n<p>Before starting with the Spring security, one should have a basic knowledge of HTML and CSS. So that this article becomes understandable. Spring security is a framework that provides several security features. For example, authentication, authorization for creating secure Java Enterprise applications. This was a subproject which was started in 2003 by Ben Alex and later on in 2004, it was released as Spring Security 2.0.0 under the Apache license. It tries to overcome the problems that come from creating security applications with non-spring background and managing the new server environment.<br \/>\n<strong><a href=\"https:\/\/data-flair.training\/blogs\/spring-framework-environment-setup\/\">Read about Spring Framework Environment Setup \u2013 How to Install Spring<\/a><\/strong><br \/>\nSpring framework has two major applications which are authentication and authorization. Authentication is a process of identifying and knowing the target user which wants to access the application. Whereas Authorisation is a process of allowing the authority to perform some actions in the application. Also, you can apply authorization to a web request, methods and access to an individual domain.<\/p>\n<h2>3. Advantages of Spring Security<\/h2>\n<p>The Spring Security Framework has several advantages. Some of them are listed:<\/p>\n<ul>\n<li>Configuration support to <a href=\"https:\/\/data-flair.training\/blogs\/java-tutorial\/\"><strong>Java Programming Language<\/strong><\/a>.<\/li>\n<li>Portable.<\/li>\n<li>Comprehensive support to tasks like authorization and authentication.<\/li>\n<li>Servlet API integration.<\/li>\n<li><strong><a href=\"https:\/\/data-flair.training\/blogs\/spring-mvc-framework\/\">Spring MVC integration<\/a><\/strong>.<\/li>\n<li>CSRF protection.<\/li>\n<li>Protection against some common tasks.<\/li>\n<\/ul>\n<h2 class=\"western\">4. Spring Security Features<\/h2>\n<p>Some of the Features of Spring Security Framework is as follows:<\/p>\n<div id=\"attachment_20920\" style=\"width: 1210px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/07\/Spring-Security-Features-01.jpg\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-20920\" class=\"wp-image-20920 size-full\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/07\/Spring-Security-Features-01.jpg\" alt=\"Spring Security Tutorial Step By Step - Example &amp;amp; Advantages\" width=\"1200\" height=\"628\" srcset=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/07\/Spring-Security-Features-01.jpg 1200w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/07\/Spring-Security-Features-01-150x79.jpg 150w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/07\/Spring-Security-Features-01-300x157.jpg 300w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/07\/Spring-Security-Features-01-768x402.jpg 768w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/07\/Spring-Security-Features-01-1024x536.jpg 1024w\" sizes=\"auto, (max-width: 1200px) 100vw, 1200px\" \/><\/a><p id=\"caption-attachment-20920\" class=\"wp-caption-text\">Features of Spring Security Framework<\/p><\/div>\n<h4>a.\u00a0LADP<\/h4>\n<p>LADP stands for<em>\u00a0Lightweight Directory Access Protocol<\/em>. It is an open application protocol which aims to maintain and access distributed directory information services using Internet Protocol (IP).<\/p>\n<h4>b. JAAS () Login Module<\/h4>\n<p>JAAS stands for <em>Java Authentication and Authorization Service<\/em>. This is a pluggable module which is implemented in Java and the Spring Security Framework uses it for its authentication purposes.<\/p>\n<h4>c. Single Sign-On<\/h4>\n<p>This allows the user to get access to multiple applications with only one account (username and password).<br \/>\n<strong><a href=\"https:\/\/data-flair.training\/blogs\/spring-logging\/\">Let&#8217;s Explore Integration of Spring Logging with log4j \u2013 Eclipse IDE Coding<\/a><\/strong><\/p>\n<h4>d. Web Form Authentication<\/h4>\n<p>In this the web form colleSpring Securitycts and authenticates user credentials from the web browser. The Spring Security supports so as to implement the web form authentication.<\/p>\n<h4>e. Authorisation<\/h4>\n<p>Its aim is to authorize the user giving it the access to the resources. This allows the developers to define the access policy against the valuable resources.<\/p>\n<h4>f. Software Localisation<\/h4>\n<p>It allows the developers to make the application UI in any language.<\/p>\n<h4>g. HTTP Authorisation<\/h4>\n<p>The Spring Framework provides this for HTTP authorization of the requests made by the web URLs using the Apache Ant paths or RE.<\/p>\n<h2 class=\"western\">5. Spring Security Example<\/h2>\n<p>Now after getting to know about the Spring Security and its features, you will see a working example with Eclipse IDE in place. This example uses Java configuration and implements Spring Security without using XML.<br \/>\nSome of the steps are defined in order to make this project:<\/p>\n<ol>\n<li>Create a Spring Security Java-based configuration which uses a Servlet Filter to protect application URLs.<\/li>\n<li>Create the code for registering the springSecurityFilterChain for every URL in your application.<\/li>\n<li>Loading the WebSecurityConfig in your existing ApplicationInitializer and add into the method getRootConfigClasses().<\/li>\n<li>Use the class WebSecurityConfigurerAdapter to configure HttpSecurity http() containing default configuration.<\/li>\n<li>Create a controller for handling user requests.<\/li>\n<li>Run the above-created project and check for the valid credentials.<\/li>\n<\/ol>\n<p><strong><a href=\"https:\/\/data-flair.training\/blogs\/spring-transaction-management\/\">Read about Spring Transaction Management &#8211; Types and Methods<\/a><\/strong><br \/>\n<strong>The code for WebSecurityConfig.java is as follows<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\">package\u00a0com.example;\u00a0\u00a0\r\nimport\u00a0org.springframework.context.annotation.*;\u00a0\u00a0\r\nimport\u00a0org.springframework.security.config.annotation.web.builders.HttpSecurity;\u00a0\u00a0\r\nimport\u00a0org.springframework.security.config.annotation.web.configuration.*;\u00a0\u00a0\r\nimport\u00a0org.springframework.security.core.userdetails.User;\u00a0\u00a0\r\nimport\u00a0org.springframework.security.core.userdetails.UserDetailsService;\r\nimport\u00a0org.springframework.security.provisioning.InMemoryUserDetailsManager;\u00a0\u00a0\r\nimport\u00a0org.springframework.web.servlet.config.annotation.WebMvcConfigurer;\u00a0\u00a0\r\n@EnableWebSecurity\u00a0\u00a0\r\n@ComponentScan(\"com.example\")\u00a0\u00a0\r\npublic\u00a0class\u00a0WebSecurityConfig\u00a0implements\u00a0WebMvcConfigurer\u00a0{\u00a0\u00a0\r\n@Bean\u00a0\u00a0\r\npublic\u00a0UserDetailsService\u00a0userDetailsService()\u00a0throws\u00a0Exception\u00a0{\u00a0\u00a0\r\nInMemoryUserDetailsManager\u00a0manager\u00a0=\u00a0new\u00a0InMemoryUserDetailsManager();\u00a0\u00a0\r\nmanager.createUser(User.withDefaultPasswordEncoder().username(\"example\").\u00a0\u00a0\r\npassword(\"java123\").roles(\"USER\").build());\u00a0\u00a0\r\nreturn\u00a0manager;\u00a0\u00a0\r\n}\u00a0\u00a0\r\nprotected\u00a0void\u00a0configure(HttpSecurity\u00a0http)\u00a0throws\u00a0Exception\u00a0{\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\r\nhttp\u00a0\u00a0\r\n.antMatcher(\"\/\")\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\r\n.authorizeRequests()\u00a0\u00a0\r\n.anyRequest().hasRole(\"ADMIN\")\u00a0\u00a0\r\n.and()\u00a0\u00a0\r\n.httpBasic();\u00a0\u00a0\r\n}\u00a0\u00a0\r\n}<\/pre>\n<p><strong>The code for SecurityWebApplicationInitializer.java is as defined<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\">package\u00a0com.example;\u00a0\u00a0\r\nimport\u00a0org.springframework.security.web.context.*;\u00a0\u00a0\r\npublic\u00a0class\u00a0SecurityWebApplicationInitializer\u00a0\u00a0\r\nextends\u00a0AbstractSecurityWebApplicationInitializer\u00a0{\u00a0\u00a0\r\n}<\/pre>\n<p><strong>The MvcWebApplicationInitializer.java is as follows<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\">package\u00a0com.example;\u00a0\u00a0\r\nimport\u00a0org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;\u00a0\u00a0\r\npublic\u00a0class\u00a0MvcWebApplicationInitializer\u00a0extends\u00a0\u00a0\r\nAbstractAnnotationConfigDispatcherServletInitializer\u00a0{\u00a0\u00a0\r\n@Override\u00a0\u00a0\r\nprotected\u00a0Class&lt;?&gt;[]\u00a0getRootConfigClasses()\u00a0{\u00a0\u00a0\r\nreturn\u00a0new\u00a0Class[]\u00a0{\u00a0WebSecurityConfig.class\u00a0};\u00a0\u00a0\r\n}\u00a0\u00a0\r\n@Override\u00a0\u00a0\r\nprotected\u00a0Class&lt;?&gt;[]\u00a0getServletConfigClasses()\u00a0{\u00a0\u00a0\r\n\/\/\u00a0TODO\u00a0Auto-generated\u00a0method\u00a0stub\u00a0\u00a0\r\nreturn\u00a0null;\u00a0\u00a0\r\n}\u00a0\u00a0\r\n@Override\u00a0\u00a0\r\nprotected\u00a0String[]\u00a0getServletMappings()\u00a0{\u00a0\u00a0\r\nreturn\u00a0new\u00a0String[]\u00a0{\u00a0\"\/\"\u00a0};\u00a0\u00a0\r\n}\u00a0\u00a0\r\n}<\/pre>\n<p><strong>The default configuration for WebSecurityConfigurerAdapeter class is as defined<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\">protected\u00a0void\u00a0configure(HttpSecurity\u00a0http)\u00a0throws\u00a0Exception\u00a0{\u00a0\u00a0\r\nhttp\u00a0\u00a0\r\n.authorizeRequests()\u00a0\u00a0\r\n.anyRequest().authenticated()\u00a0\u00a0\r\n.and()\u00a0\u00a0\r\n.formLogin()\u00a0\u00a0\r\n.and()\u00a0\u00a0\r\n.httpBasic();\u00a0\u00a0\r\n}<\/pre>\n<p><strong><a href=\"https:\/\/data-flair.training\/blogs\/spring-bean\/\">Do you know about Spring Bean Definition\u00a0<\/a><\/strong><br \/>\n<strong>The controller Java file named HomeController.java is as defined<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\">package\u00a0com.example.controller;\u00a0\u00a0\r\nimport\u00a0org.springframework.stereotype.Controller;\u00a0\u00a0\r\nimport\u00a0org.springframework.web.bind.annotation.RequestMapping;\u00a0\u00a0\r\nimport\u00a0org.springframework.web.bind.annotation.RequestMethod;\u00a0\u00a0\r\n@Controller\u00a0\u00a0\r\npublic\u00a0class\u00a0HomeController\u00a0{\u00a0\r\n@RequestMapping(value=\"\/\",\u00a0method=RequestMethod.GET)\u00a0\u00a0\r\npublic\u00a0String\u00a0index()\u00a0{\u00a0\r\nreturn\u00a0\"index\";\u00a0\u00a0\r\n}\u00a0\u00a0\r\n}\u00a0<span style=\"background-color: #fafafa;color: #333333;font-family: Verdana, Geneva, sans-serif;font-size: 16px;font-weight: inherit\">\u00a0<\/span>\r\n<\/pre>\n<p><strong>Creating a view page index.jsp having the following source code<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\">&lt;html&gt;\u00a0\u00a0\r\n&lt;head&gt;\u00a0\u00a0\r\n&lt;meta\u00a0http-equiv=\"Content-Type\"\u00a0content=\"text\/html;\u00a0charset=UTF-8\"&gt;\u00a0\u00a0\r\n&lt;title&gt;Home\u00a0Page&lt;\/title&gt;\u00a0\u00a0\r\n&lt;\/head&gt;\u00a0\u00a0\r\n&lt;body&gt;\u00a0\u00a0\r\nWelcome\u00a0to\u00a0home\u00a0page!\u00a0\u00a0\r\n&lt;\/body&gt;\u00a0\u00a0\r\n&lt;\/html&gt;<\/pre>\n<p>Once you are done creating the Java files run the above-created project. If you try logging with the wrong credentials it will prompt you the following message as output:<br \/>\n<strong>Your login attempt was not successful, try again.<\/strong><br \/>\n<strong>Reason: Bad credentials<\/strong><br \/>\nIf you then try logging with correct credentials you will be directed to another page having the following message:<br \/>\n<strong>Welcome to home page!<\/strong><\/p>\n<h2 class=\"western\">6. Conclusion<\/h2>\n<p>Hence, in this Spring Security\u00a0tutorial, we studied the Spring Security Framework. Along with that, you saw its features, advantages and a working example using Eclipse IDE. Going with the session you have got the basic knowledge needed for creating a user login page having features such as authentication and authorization. Still, if you have any query, feel free to ask in the comment section.<br \/>\nSee Also-<strong><a href=\"https:\/\/data-flair.training\/blogs\/spring-bean-scope\/\">\u00a0Spring Bean Scope<\/a><\/strong><br \/>\n<strong><a href=\"https:\/\/spring.io\/projects\/spring-security\">For reference<\/a><\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"<p>1. Objective In our last tutorial, we studied\u00a0Spring Web Services.\u00a0In this Spring Security tutorial, we are going to learn about security features of\u00a0Spring Framework. Along with that, we will see the advantages of Spring&#46;&#46;&#46;<\/p>\n","protected":false},"author":5,"featured_media":20923,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[64],"tags":[378,4246,4564,8055,13358,13359,13360,13361,13362,13363,13364,13365,13366,13367],"class_list":["post-20905","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-spring","tag-advantages-of-spring-security","tag-example-of-spring-security","tag-features-of-spring-security","tag-ladp","tag-spring-security-4-tutorial","tag-spring-security-advantages","tag-spring-security-documentation","tag-spring-security-example","tag-spring-security-features","tag-spring-security-framework","tag-spring-security-javatpoint","tag-spring-security-mkyong","tag-spring-security-spring-boot","tag-spring-security-tutorial"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Spring Security Tutorial Step By Step - Example &amp; Advantages - DataFlair<\/title>\n<meta name=\"description\" content=\"Spring Security Tutorial Step By Step-Spring Security Example,Advantages of Spring Framework Security,Spring Security Features,seuirty example Eclipse IDE\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/data-flair.training\/blogs\/spring-security-tutorial\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Spring Security Tutorial Step By Step - Example &amp; Advantages - DataFlair\" \/>\n<meta property=\"og:description\" content=\"Spring Security Tutorial Step By Step-Spring Security Example,Advantages of Spring Framework Security,Spring Security Features,seuirty example Eclipse IDE\" \/>\n<meta property=\"og:url\" content=\"https:\/\/data-flair.training\/blogs\/spring-security-tutorial\/\" \/>\n<meta property=\"og:site_name\" content=\"DataFlair\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/DataFlairWS\/\" \/>\n<meta property=\"article:published_time\" content=\"2018-07-12T04:10:30+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2018-09-15T06:57:20+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/07\/Spring-Security-01-1.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"628\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"DataFlair Team\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@DataFlairWS\" \/>\n<meta name=\"twitter:site\" content=\"@DataFlairWS\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"DataFlair Team\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Spring Security Tutorial Step By Step - Example &amp; Advantages - DataFlair","description":"Spring Security Tutorial Step By Step-Spring Security Example,Advantages of Spring Framework Security,Spring Security Features,seuirty example Eclipse IDE","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/data-flair.training\/blogs\/spring-security-tutorial\/","og_locale":"en_US","og_type":"article","og_title":"Spring Security Tutorial Step By Step - Example &amp; Advantages - DataFlair","og_description":"Spring Security Tutorial Step By Step-Spring Security Example,Advantages of Spring Framework Security,Spring Security Features,seuirty example Eclipse IDE","og_url":"https:\/\/data-flair.training\/blogs\/spring-security-tutorial\/","og_site_name":"DataFlair","article_publisher":"https:\/\/www.facebook.com\/DataFlairWS\/","article_published_time":"2018-07-12T04:10:30+00:00","article_modified_time":"2018-09-15T06:57:20+00:00","og_image":[{"width":1200,"height":628,"url":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/07\/Spring-Security-01-1.jpg","type":"image\/jpeg"}],"author":"DataFlair Team","twitter_card":"summary_large_image","twitter_creator":"@DataFlairWS","twitter_site":"@DataFlairWS","twitter_misc":{"Written by":"DataFlair Team","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/data-flair.training\/blogs\/spring-security-tutorial\/#article","isPartOf":{"@id":"https:\/\/data-flair.training\/blogs\/spring-security-tutorial\/"},"author":{"name":"DataFlair Team","@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/person\/7f83c342f5d1632d6f7b4b0b0f447823"},"headline":"Spring Security Tutorial Step By Step &#8211; Example &amp; Advantages","datePublished":"2018-07-12T04:10:30+00:00","dateModified":"2018-09-15T06:57:20+00:00","mainEntityOfPage":{"@id":"https:\/\/data-flair.training\/blogs\/spring-security-tutorial\/"},"wordCount":837,"commentCount":0,"publisher":{"@id":"https:\/\/data-flair.training\/blogs\/#organization"},"image":{"@id":"https:\/\/data-flair.training\/blogs\/spring-security-tutorial\/#primaryimage"},"thumbnailUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/07\/Spring-Security-01-1.jpg","keywords":["Advantages of Spring Security","Example of 'Spring Security","Features of 'Spring Security","LADP","spring security 4 tutorial","Spring Security Advantages","spring security documentation","Spring Security Example","Spring Security Features","Spring Security Framework","spring security javatpoint","spring security mkyong","spring security spring boot","Spring Security Tutorial"],"articleSection":["Spring Tutorials"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/data-flair.training\/blogs\/spring-security-tutorial\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/data-flair.training\/blogs\/spring-security-tutorial\/","url":"https:\/\/data-flair.training\/blogs\/spring-security-tutorial\/","name":"Spring Security Tutorial Step By Step - Example &amp; Advantages - DataFlair","isPartOf":{"@id":"https:\/\/data-flair.training\/blogs\/#website"},"primaryImageOfPage":{"@id":"https:\/\/data-flair.training\/blogs\/spring-security-tutorial\/#primaryimage"},"image":{"@id":"https:\/\/data-flair.training\/blogs\/spring-security-tutorial\/#primaryimage"},"thumbnailUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/07\/Spring-Security-01-1.jpg","datePublished":"2018-07-12T04:10:30+00:00","dateModified":"2018-09-15T06:57:20+00:00","description":"Spring Security Tutorial Step By Step-Spring Security Example,Advantages of Spring Framework Security,Spring Security Features,seuirty example Eclipse IDE","breadcrumb":{"@id":"https:\/\/data-flair.training\/blogs\/spring-security-tutorial\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/data-flair.training\/blogs\/spring-security-tutorial\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/data-flair.training\/blogs\/spring-security-tutorial\/#primaryimage","url":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/07\/Spring-Security-01-1.jpg","contentUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/07\/Spring-Security-01-1.jpg","width":1200,"height":628,"caption":"Spring Security Tutorial Step By Step - Example &amp; Advantages"},{"@type":"BreadcrumbList","@id":"https:\/\/data-flair.training\/blogs\/spring-security-tutorial\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Blog Home","item":"https:\/\/data-flair.training\/blogs\/"},{"@type":"ListItem","position":2,"name":"Reading data from external files","item":"https:\/\/data-flair.training\/blogs\/tag\/reading-data-from-external-files\/"},{"@type":"ListItem","position":3,"name":"Spring Security Tutorial Step By Step &#8211; Example &amp; Advantages"}]},{"@type":"WebSite","@id":"https:\/\/data-flair.training\/blogs\/#website","url":"https:\/\/data-flair.training\/blogs\/","name":"DataFlair","description":"Learn Today. Lead Tomorrow.","publisher":{"@id":"https:\/\/data-flair.training\/blogs\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/data-flair.training\/blogs\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/data-flair.training\/blogs\/#organization","name":"DataFlair","url":"https:\/\/data-flair.training\/blogs\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/logo\/image\/","url":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2016\/07\/Data-Flair.png","contentUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2016\/07\/Data-Flair.png","width":106,"height":48,"caption":"DataFlair"},"image":{"@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/DataFlairWS\/","https:\/\/x.com\/DataFlairWS","https:\/\/www.linkedin.com\/company\/dataflair-web-services-pvt-ltd\/","https:\/\/www.youtube.com\/user\/DataFlairWS"]},{"@type":"Person","@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/person\/7f83c342f5d1632d6f7b4b0b0f447823","name":"DataFlair Team","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/4cf3a74600d131330b8c481d519afd1574093ed89f6d3396a95393ad223eb7cd?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/4cf3a74600d131330b8c481d519afd1574093ed89f6d3396a95393ad223eb7cd?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/4cf3a74600d131330b8c481d519afd1574093ed89f6d3396a95393ad223eb7cd?s=96&d=mm&r=g","caption":"DataFlair Team"},"description":"DataFlair Team creates expert-level guides on programming, Java, Python, C++, DSA, AI, ML, data Science, Android, Flutter, MERN, Web Development, and technology. Our goal is to empower learners with easy-to-understand content. Explore our resources for career growth and practical learning.","url":"https:\/\/data-flair.training\/blogs\/author\/dfteam1\/"}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/20905","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/comments?post=20905"}],"version-history":[{"count":3,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/20905\/revisions"}],"predecessor-version":[{"id":32638,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/20905\/revisions\/32638"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/media\/20923"}],"wp:attachment":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/media?parent=20905"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/categories?post=20905"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/tags?post=20905"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}