{"id":16828,"date":"2021-06-30T08:29:52","date_gmt":"2021-06-30T01:29:52","guid":{"rendered":"https:\/\/huongdanjava.com\/?p=16828"},"modified":"2021-06-30T08:29:52","modified_gmt":"2021-06-30T01:29:52","slug":"using-spring-security-in-spring-boot","status":"publish","type":"post","link":"https:\/\/huongdanjava.com\/using-spring-security-in-spring-boot.html","title":{"rendered":"Using Spring Security in Spring Boot"},"content":{"rendered":"<p>I showed you how to install and configure to use Spring Security in Spring MVC applications. With Spring Boot application, configuring Spring Security will be much simpler. We do not need to go through each step to configure the authentication and authorization of the application. Spring Boot helps us to reduce a lot of manipulations with the default configurations for Spring Security. How is it in detail? I will share with you some knowledge about Spring Security in Spring Boot application!<\/p>\n<p>First, I will create a new Spring Boot application:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-16830 size-full\" src=\"https:\/\/huongdanjava.com\/wp-content\/uploads\/2021\/06\/using-spring-security-in-spring-boot-1.png\" alt=\"Using Spring Security in Spring Boot\" width=\"700\" height=\"845\" \/><\/p>\n<p>with Spring Web and Spring Security dependencies as follows:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-16831 size-full\" src=\"https:\/\/huongdanjava.com\/wp-content\/uploads\/2021\/06\/using-spring-security-in-spring-boot-2.png\" alt=\"Using Spring Security in Spring Boot\" width=\"700\" height=\"844\" \/><\/p>\n<p>Result:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-16832 size-full\" src=\"https:\/\/huongdanjava.com\/wp-content\/uploads\/2021\/06\/using-spring-security-in-spring-boot-3.png\" alt=\"Using Spring Security in Spring Boot\" width=\"700\" height=\"524\" \/><\/p>\n<p>Right now, you run the application and request to http:\/\/localhost:8080, you will see the default login page of Spring Security displayed as follows:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-16833 size-full\" src=\"https:\/\/huongdanjava.com\/wp-content\/uploads\/2021\/06\/using-spring-security-in-spring-boot-4.png\" alt=\"Using Spring Security in Spring Boot\" width=\"700\" height=\"492\" \/><\/p>\n<p>Obviously, Spring Boot already has the default configuration for Spring Security as soon as we add its dependency. The default username for you to log in is &#8220;user&#8221; and the password is generated and printed in the console log.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-16834 size-full\" src=\"https:\/\/huongdanjava.com\/wp-content\/uploads\/2021\/06\/using-spring-security-in-spring-boot-5.png\" alt=\"Using Spring Security in Spring Boot\" width=\"700\" height=\"216\" \/><\/p>\n<p>Enter username, password and then press the Sign In button, you will see the following results:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-16835 size-full\" src=\"https:\/\/huongdanjava.com\/wp-content\/uploads\/2021\/06\/using-spring-security-in-spring-boot-6.png\" alt=\"Using Spring Security in Spring Boot\" width=\"700\" height=\"491\" \/><\/p>\n<p>This is because we have not defined a request in our application yet. If I define the controller as follows:<\/p>\n<pre class=\"lang:java decode:true \">package com.huongdanjava.springboot.springsecurity;\r\n\r\nimport org.springframework.web.bind.annotation.GetMapping;\r\nimport org.springframework.web.bind.annotation.RestController;\r\n\r\n@RestController\r\npublic class HelloController {\r\n\r\n    @GetMapping(\"\")\r\n    public String sayHello() {\r\n        return \"Hello\";\r\n    }\r\n\r\n}\r\n<\/pre>\n<p>then you will see the following result:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-16836 size-full\" src=\"https:\/\/huongdanjava.com\/wp-content\/uploads\/2021\/06\/using-spring-security-in-spring-boot-7.png\" alt=\"Using Spring Security in Spring Boot\" width=\"700\" height=\"491\" \/><\/p>\n<p>You can change this default username and password by configuring the following 2 properties in the application.properties file:<\/p>\n<pre class=\"lang:java decode:true \">spring.security.user.name=khanh\r\nspring.security.user.password=123456\r\n<\/pre>\n<p>Run the application again, you will see that the default password will not be generated anymore and we can use the username and password that we have declared above to log in.<\/p>\n<p>Spring Boot uses the SecurityAutoConfiguration class to assign a default configuration to Spring Security. If take a look at the code of this SecurityAutoConfiguration class:<\/p>\n<pre class=\"lang:java decode:true\">package org.springframework.boot.autoconfigure.security.servlet;\r\n\r\nimport org.springframework.boot.autoconfigure.EnableAutoConfiguration;\r\nimport org.springframework.boot.autoconfigure.condition.ConditionalOnClass;\r\nimport org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;\r\nimport org.springframework.boot.autoconfigure.security.SecurityDataConfiguration;\r\nimport org.springframework.boot.autoconfigure.security.SecurityProperties;\r\nimport org.springframework.boot.context.properties.EnableConfigurationProperties;\r\nimport org.springframework.context.ApplicationEventPublisher;\r\nimport org.springframework.context.annotation.Bean;\r\nimport org.springframework.context.annotation.Configuration;\r\nimport org.springframework.context.annotation.Import;\r\nimport org.springframework.security.authentication.AuthenticationEventPublisher;\r\nimport org.springframework.security.authentication.DefaultAuthenticationEventPublisher;\r\n\r\n\/**\r\n * {@link EnableAutoConfiguration Auto-configuration} for Spring Security.\r\n *\r\n * @author Dave Syer\r\n * @author Andy Wilkinson\r\n * @author Madhura Bhave\r\n * @since 1.0.0\r\n *\/\r\n@Configuration(proxyBeanMethods = false)\r\n@ConditionalOnClass(DefaultAuthenticationEventPublisher.class)\r\n@EnableConfigurationProperties(SecurityProperties.class)\r\n@Import({ SpringBootWebSecurityConfiguration.class, WebSecurityEnablerConfiguration.class,\r\n\t\tSecurityDataConfiguration.class })\r\npublic class SecurityAutoConfiguration {\r\n\r\n\t@Bean\r\n\t@ConditionalOnMissingBean(AuthenticationEventPublisher.class)\r\n\tpublic DefaultAuthenticationEventPublisher authenticationEventPublisher(ApplicationEventPublisher publisher) {\r\n\t\treturn new DefaultAuthenticationEventPublisher(publisher);\r\n\t}\r\n\r\n}\r\n<\/pre>\n<p>you will see that there are 3 other configuration classes imported into this class:<br \/>\nThe SpringBootWebSecurityConfiguration class defines the default Spring Security configuration for the authorization part as follows:<\/p>\n<pre class=\"lang:java decode:true\">package org.springframework.boot.autoconfigure.security.servlet;\r\n\r\nimport org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication;\r\nimport org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication.Type;\r\nimport org.springframework.boot.autoconfigure.security.ConditionalOnDefaultWebSecurity;\r\nimport org.springframework.boot.autoconfigure.security.SecurityProperties;\r\nimport org.springframework.context.annotation.Bean;\r\nimport org.springframework.context.annotation.Configuration;\r\nimport org.springframework.core.annotation.Order;\r\nimport org.springframework.security.config.annotation.web.builders.HttpSecurity;\r\nimport org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;\r\nimport org.springframework.security.web.SecurityFilterChain;\r\n\r\n\/**\r\n * The default configuration for web security. It relies on Spring Security's\r\n * content-negotiation strategy to determine what sort of authentication to use. If the\r\n * user specifies their own {@link WebSecurityConfigurerAdapter} or\r\n * {@link SecurityFilterChain} bean, this will back-off completely and the users should\r\n * specify all the bits that they want to configure as part of the custom security\r\n * configuration.\r\n *\r\n * @author Madhura Bhave\r\n *\/\r\n@Configuration(proxyBeanMethods = false)\r\n@ConditionalOnDefaultWebSecurity\r\n@ConditionalOnWebApplication(type = Type.SERVLET)\r\nclass SpringBootWebSecurityConfiguration {\r\n\r\n\t@Bean\r\n\t@Order(SecurityProperties.BASIC_AUTH_ORDER)\r\n\tSecurityFilterChain defaultSecurityFilterChain(HttpSecurity http) throws Exception {\r\n\t\thttp.authorizeRequests().anyRequest().authenticated().and().formLogin().and().httpBasic();\r\n\t\treturn http.build();\r\n\t}\r\n\r\n}\r\n<\/pre>\n<p>As you can see, by default Spring Security will block all requests, automatically generate a login form and use HTTP basic for authentication.<\/p>\n<p>Class WebSecurityEnablerConfiguration automatically adds @EnableWebSecurity annotation if Spring Security is added to project dependencies.<\/p>\n<p>Class SecurityDataConfiguration is automatically configured in relation to Spring Data.<\/p>\n<p>As I told you in the tutorial about <a href=\"https:\/\/huongdanjava.com\/configure-spring-security-using-websecurityconfigureradapter-and-abstractsecuritywebapplicationinitializer.html\" target=\"_blank\" rel=\"noopener noreferrer\">Configure Spring Security using WebSecurityConfigurerAdapter and AbstractSecurityWebApplicationInitializer<\/a>, we can override the WebSecurityConfigurerAdapter class to change this configuration.<\/p>\n<pre class=\"lang:java decode:true\">package com.huongdanjava.springboot.springsecurity;\r\n\r\nimport org.springframework.context.annotation.Configuration;\r\nimport org.springframework.security.config.annotation.web.builders.HttpSecurity;\r\nimport org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;\r\n\r\n@Configuration\r\npublic class SpringSecurityConfiguration extends WebSecurityConfigurerAdapter {\r\n\r\n    @Override\r\n    protected void configure(HttpSecurity http) throws Exception {\r\n        super.configure(http);\r\n    }\r\n}\r\n<\/pre>\n<p>and of course, you can also override the configure(AuthenticationManagerBuilder auth) method to replace the authentication configuration!<\/p>\n\n\n<div class=\"kk-star-ratings kksr-auto kksr-align-right kksr-valign-bottom\"\n    data-payload='{&quot;align&quot;:&quot;right&quot;,&quot;id&quot;:&quot;16828&quot;,&quot;slug&quot;:&quot;default&quot;,&quot;valign&quot;:&quot;bottom&quot;,&quot;ignore&quot;:&quot;&quot;,&quot;reference&quot;:&quot;auto&quot;,&quot;class&quot;:&quot;&quot;,&quot;count&quot;:&quot;0&quot;,&quot;legendonly&quot;:&quot;&quot;,&quot;readonly&quot;:&quot;&quot;,&quot;score&quot;:&quot;0&quot;,&quot;starsonly&quot;:&quot;&quot;,&quot;best&quot;:&quot;5&quot;,&quot;gap&quot;:&quot;4&quot;,&quot;greet&quot;:&quot;&quot;,&quot;legend&quot;:&quot;0\\\/5 - (0 votes)&quot;,&quot;size&quot;:&quot;24&quot;,&quot;title&quot;:&quot;Using Spring Security in Spring Boot&quot;,&quot;width&quot;:&quot;0&quot;,&quot;_legend&quot;:&quot;{score}\\\/{best} - ({count} {votes})&quot;,&quot;font_factor&quot;:&quot;1.25&quot;}'>\n            \n<div class=\"kksr-stars\">\n    \n<div class=\"kksr-stars-inactive\">\n            <div class=\"kksr-star\" data-star=\"1\" style=\"padding-right: 4px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"2\" style=\"padding-right: 4px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"3\" style=\"padding-right: 4px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"4\" style=\"padding-right: 4px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"5\" style=\"padding-right: 4px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n    <\/div>\n    \n<div class=\"kksr-stars-active\" style=\"width: 0px;\">\n            <div class=\"kksr-star\" style=\"padding-right: 4px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 4px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 4px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 4px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 4px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n    <\/div>\n<\/div>\n                \n\n<div class=\"kksr-legend\" style=\"font-size: 19.2px;\">\n            <span class=\"kksr-muted\"><\/span>\n    <\/div>\n    <\/div>\n","protected":false},"excerpt":{"rendered":"<p>I showed you how to install and configure to use Spring Security in Spring MVC applications. With Spring Boot application, configuring Spring Security will be much simpler. We do not need to go through each step to configure the authentication and authorization of the application.&hellip; <a href=\"https:\/\/huongdanjava.com\/using-spring-security-in-spring-boot.html\">Read More<\/a><\/p>\n","protected":false},"author":1,"featured_media":1680,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1891],"tags":[],"class_list":["post-16828","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-spring-security","clearfix"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Using Spring Security in Spring Boot - Huong Dan Java<\/title>\n<meta name=\"description\" content=\"In this tutorial, I will guide you how to use Spring Security in Spring Boot.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/huongdanjava.com\/using-spring-security-in-spring-boot.html\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Using Spring Security in Spring Boot - Huong Dan Java\" \/>\n<meta property=\"og:description\" content=\"In this tutorial, I will guide you how to use Spring Security in Spring Boot.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/huongdanjava.com\/using-spring-security-in-spring-boot.html\" \/>\n<meta property=\"og:site_name\" content=\"Huong Dan Java\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/nhkhanh2406\" \/>\n<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/nhkhanh2406\" \/>\n<meta property=\"article:published_time\" content=\"2021-06-30T01:29:52+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/huongdanjava.com\/wp-content\/uploads\/2016\/10\/spring-boot.png\" \/>\n\t<meta property=\"og:image:width\" content=\"300\" \/>\n\t<meta property=\"og:image:height\" content=\"300\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Khanh Nguyen\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@https:\/\/twitter.com\/KhanhNguyenJ\" \/>\n<meta name=\"twitter:site\" content=\"@KhanhNguyenJ\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Khanh Nguyen\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/using-spring-security-in-spring-boot.html#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/using-spring-security-in-spring-boot.html\"},\"author\":{\"name\":\"Khanh Nguyen\",\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/#\\\/schema\\\/person\\\/dc859d7f8cbea3b593e6738de9cbb82d\"},\"headline\":\"Using Spring Security in Spring Boot\",\"datePublished\":\"2021-06-30T01:29:52+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/using-spring-security-in-spring-boot.html\"},\"wordCount\":404,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/#\\\/schema\\\/person\\\/dc859d7f8cbea3b593e6738de9cbb82d\"},\"image\":{\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/using-spring-security-in-spring-boot.html#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/huongdanjava.com\\\/wp-content\\\/uploads\\\/2016\\\/10\\\/spring-boot.png\",\"articleSection\":[\"Spring Security\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/huongdanjava.com\\\/using-spring-security-in-spring-boot.html#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/using-spring-security-in-spring-boot.html\",\"url\":\"https:\\\/\\\/huongdanjava.com\\\/using-spring-security-in-spring-boot.html\",\"name\":\"Using Spring Security in Spring Boot - Huong Dan Java\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/using-spring-security-in-spring-boot.html#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/using-spring-security-in-spring-boot.html#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/huongdanjava.com\\\/wp-content\\\/uploads\\\/2016\\\/10\\\/spring-boot.png\",\"datePublished\":\"2021-06-30T01:29:52+00:00\",\"description\":\"In this tutorial, I will guide you how to use Spring Security in Spring Boot.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/using-spring-security-in-spring-boot.html#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/huongdanjava.com\\\/using-spring-security-in-spring-boot.html\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/using-spring-security-in-spring-boot.html#primaryimage\",\"url\":\"https:\\\/\\\/huongdanjava.com\\\/wp-content\\\/uploads\\\/2016\\\/10\\\/spring-boot.png\",\"contentUrl\":\"https:\\\/\\\/huongdanjava.com\\\/wp-content\\\/uploads\\\/2016\\\/10\\\/spring-boot.png\",\"width\":300,\"height\":300},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/using-spring-security-in-spring-boot.html#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/huongdanjava.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Using Spring Security in Spring Boot\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/#website\",\"url\":\"https:\\\/\\\/huongdanjava.com\\\/\",\"name\":\"Huong Dan Java\",\"description\":\"Java development tutorials\",\"publisher\":{\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/#\\\/schema\\\/person\\\/dc859d7f8cbea3b593e6738de9cbb82d\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/huongdanjava.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/#\\\/schema\\\/person\\\/dc859d7f8cbea3b593e6738de9cbb82d\",\"name\":\"Khanh Nguyen\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/wp-content\\\/uploads\\\/2021\\\/07\\\/CC6FAC58-D227-4DD8-93D1-6D6A795577E3_1_201_a.jpeg\",\"url\":\"https:\\\/\\\/huongdanjava.com\\\/wp-content\\\/uploads\\\/2021\\\/07\\\/CC6FAC58-D227-4DD8-93D1-6D6A795577E3_1_201_a.jpeg\",\"contentUrl\":\"https:\\\/\\\/huongdanjava.com\\\/wp-content\\\/uploads\\\/2021\\\/07\\\/CC6FAC58-D227-4DD8-93D1-6D6A795577E3_1_201_a.jpeg\",\"width\":1267,\"height\":1517,\"caption\":\"Khanh Nguyen\"},\"logo\":{\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/wp-content\\\/uploads\\\/2021\\\/07\\\/CC6FAC58-D227-4DD8-93D1-6D6A795577E3_1_201_a.jpeg\"},\"description\":\"I love Java and everything related to Java.\",\"sameAs\":[\"https:\\\/\\\/huongdanjava.com\",\"https:\\\/\\\/www.facebook.com\\\/nhkhanh2406\",\"https:\\\/\\\/x.com\\\/https:\\\/\\\/twitter.com\\\/KhanhNguyenJ\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Using Spring Security in Spring Boot - Huong Dan Java","description":"In this tutorial, I will guide you how to use Spring Security in Spring Boot.","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:\/\/huongdanjava.com\/using-spring-security-in-spring-boot.html","og_locale":"en_US","og_type":"article","og_title":"Using Spring Security in Spring Boot - Huong Dan Java","og_description":"In this tutorial, I will guide you how to use Spring Security in Spring Boot.","og_url":"https:\/\/huongdanjava.com\/using-spring-security-in-spring-boot.html","og_site_name":"Huong Dan Java","article_publisher":"https:\/\/www.facebook.com\/nhkhanh2406","article_author":"https:\/\/www.facebook.com\/nhkhanh2406","article_published_time":"2021-06-30T01:29:52+00:00","og_image":[{"width":300,"height":300,"url":"https:\/\/huongdanjava.com\/wp-content\/uploads\/2016\/10\/spring-boot.png","type":"image\/png"}],"author":"Khanh Nguyen","twitter_card":"summary_large_image","twitter_creator":"@https:\/\/twitter.com\/KhanhNguyenJ","twitter_site":"@KhanhNguyenJ","twitter_misc":{"Written by":"Khanh Nguyen","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/huongdanjava.com\/using-spring-security-in-spring-boot.html#article","isPartOf":{"@id":"https:\/\/huongdanjava.com\/using-spring-security-in-spring-boot.html"},"author":{"name":"Khanh Nguyen","@id":"https:\/\/huongdanjava.com\/#\/schema\/person\/dc859d7f8cbea3b593e6738de9cbb82d"},"headline":"Using Spring Security in Spring Boot","datePublished":"2021-06-30T01:29:52+00:00","mainEntityOfPage":{"@id":"https:\/\/huongdanjava.com\/using-spring-security-in-spring-boot.html"},"wordCount":404,"commentCount":0,"publisher":{"@id":"https:\/\/huongdanjava.com\/#\/schema\/person\/dc859d7f8cbea3b593e6738de9cbb82d"},"image":{"@id":"https:\/\/huongdanjava.com\/using-spring-security-in-spring-boot.html#primaryimage"},"thumbnailUrl":"https:\/\/huongdanjava.com\/wp-content\/uploads\/2016\/10\/spring-boot.png","articleSection":["Spring Security"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/huongdanjava.com\/using-spring-security-in-spring-boot.html#respond"]}]},{"@type":"WebPage","@id":"https:\/\/huongdanjava.com\/using-spring-security-in-spring-boot.html","url":"https:\/\/huongdanjava.com\/using-spring-security-in-spring-boot.html","name":"Using Spring Security in Spring Boot - Huong Dan Java","isPartOf":{"@id":"https:\/\/huongdanjava.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/huongdanjava.com\/using-spring-security-in-spring-boot.html#primaryimage"},"image":{"@id":"https:\/\/huongdanjava.com\/using-spring-security-in-spring-boot.html#primaryimage"},"thumbnailUrl":"https:\/\/huongdanjava.com\/wp-content\/uploads\/2016\/10\/spring-boot.png","datePublished":"2021-06-30T01:29:52+00:00","description":"In this tutorial, I will guide you how to use Spring Security in Spring Boot.","breadcrumb":{"@id":"https:\/\/huongdanjava.com\/using-spring-security-in-spring-boot.html#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/huongdanjava.com\/using-spring-security-in-spring-boot.html"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/huongdanjava.com\/using-spring-security-in-spring-boot.html#primaryimage","url":"https:\/\/huongdanjava.com\/wp-content\/uploads\/2016\/10\/spring-boot.png","contentUrl":"https:\/\/huongdanjava.com\/wp-content\/uploads\/2016\/10\/spring-boot.png","width":300,"height":300},{"@type":"BreadcrumbList","@id":"https:\/\/huongdanjava.com\/using-spring-security-in-spring-boot.html#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/huongdanjava.com\/"},{"@type":"ListItem","position":2,"name":"Using Spring Security in Spring Boot"}]},{"@type":"WebSite","@id":"https:\/\/huongdanjava.com\/#website","url":"https:\/\/huongdanjava.com\/","name":"Huong Dan Java","description":"Java development tutorials","publisher":{"@id":"https:\/\/huongdanjava.com\/#\/schema\/person\/dc859d7f8cbea3b593e6738de9cbb82d"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/huongdanjava.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/huongdanjava.com\/#\/schema\/person\/dc859d7f8cbea3b593e6738de9cbb82d","name":"Khanh Nguyen","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/huongdanjava.com\/wp-content\/uploads\/2021\/07\/CC6FAC58-D227-4DD8-93D1-6D6A795577E3_1_201_a.jpeg","url":"https:\/\/huongdanjava.com\/wp-content\/uploads\/2021\/07\/CC6FAC58-D227-4DD8-93D1-6D6A795577E3_1_201_a.jpeg","contentUrl":"https:\/\/huongdanjava.com\/wp-content\/uploads\/2021\/07\/CC6FAC58-D227-4DD8-93D1-6D6A795577E3_1_201_a.jpeg","width":1267,"height":1517,"caption":"Khanh Nguyen"},"logo":{"@id":"https:\/\/huongdanjava.com\/wp-content\/uploads\/2021\/07\/CC6FAC58-D227-4DD8-93D1-6D6A795577E3_1_201_a.jpeg"},"description":"I love Java and everything related to Java.","sameAs":["https:\/\/huongdanjava.com","https:\/\/www.facebook.com\/nhkhanh2406","https:\/\/x.com\/https:\/\/twitter.com\/KhanhNguyenJ"]}]}},"_links":{"self":[{"href":"https:\/\/huongdanjava.com\/wp-json\/wp\/v2\/posts\/16828","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/huongdanjava.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/huongdanjava.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/huongdanjava.com\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/huongdanjava.com\/wp-json\/wp\/v2\/comments?post=16828"}],"version-history":[{"count":3,"href":"https:\/\/huongdanjava.com\/wp-json\/wp\/v2\/posts\/16828\/revisions"}],"predecessor-version":[{"id":16838,"href":"https:\/\/huongdanjava.com\/wp-json\/wp\/v2\/posts\/16828\/revisions\/16838"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/huongdanjava.com\/wp-json\/wp\/v2\/media\/1680"}],"wp:attachment":[{"href":"https:\/\/huongdanjava.com\/wp-json\/wp\/v2\/media?parent=16828"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/huongdanjava.com\/wp-json\/wp\/v2\/categories?post=16828"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/huongdanjava.com\/wp-json\/wp\/v2\/tags?post=16828"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}