当前位置: 首页 > news >正文

锡林郭勒盟网站建设_网站建设公司_导航菜单_seo优化

wordpress加密版权,英文seo外链,网站文章图片加标签加,惠州建设网站公司朋友不允许朋友写用户身份验证。 厌倦了管理自己的用户#xff1f; 立即尝试Okta的API和Java SDK。 在几分钟之内即可对任何应用程序中的用户进行身份验证#xff0c;管理和保护。 身份验证对于除了最基本的Web应用程序之外的所有应用程序都至关重要。 谁在发出请求#xf… 朋友不允许朋友写用户身份验证。 厌倦了管理自己的用户 立即尝试Okta的API和Java SDK。 在几分钟之内即可对任何应用程序中的用户进行身份验证管理和保护。 身份验证对于除了最基本的Web应用程序之外的所有应用程序都至关重要。 谁在发出请求需要数据或想要更新或删除数据 您可以确定请求来自指定的用户或代理吗 在当今的计算机安全环境中很难确定地回答这个问题。 幸运的是绝对没有理由重新发明轮子。 Spring Boot和Spring Security是Web应用程序开发的强大组合。 使用相对较少的代码行您可以实现各种身份验证系统。 这些系统由专家根据规范进行测试更新和实施。 在本教程中您将构建一个非常简单的Spring Boot应用程序该应用程序从basic-auth开始并逐步进行基于表单的身份验证基于表单的自定义身份验证以及使用Okta作为OAuth提供者的OAuth 2.0 / OpenID Connect。 我们还将介绍SAML身份验证。 但是Spring Security SAML实现目前正在过渡中尚未更新为最新版本的Spring Boot。 本教程专门研究身份验证将授权保留另一天。 身份验证可以回答问题谁在发出请求。 授权是在身份验证之后进行的并回答以下问题是否允许经过身份验证的用户发出特定请求 使用Spring Security进行身份验证的要求和假设 本教程假定您对Java和Spring Boot基本熟悉。 该项目利用了Gradle构建系统因为我发现Groovy DSL永远比XML更可取。 但是您不需要安装Gradle因为所有项目都包括Gradle包装器。 您不需要全面了解OAuth 2.0和OpenID ConnectOIDC–令人欣慰的是由于OAuth 2.0和OpenID Connect有时非常复杂详细且繁琐。 我仍在努力了解它的许多方面。 但是基本的了解会有所帮助。 如果您想更进一步本文结尾处的一些链接可以为您提供帮助。 非常非常简短地讲OAuth 2.0是开放授权开放授权的第二个主要版本。 来自OAuth规范委员会的信息 “ OAuth 2.0致力于简化客户端开发人员的工作同时为Web应用程序桌面应用程序移动电话和客厅设备提供特定的授权流程。” 注意两件事1仅是授权因此没有身份验证 2这是一个规范因此没有实现。 OIDC建立在OAuth 2.0之上以使用定义良好的令牌添加身份层身份验证。 Okta的Spring Security身份验证 Okta是一家身份访问和管理公司提供大量的软件即服务身份产品。 我们具有OAuth 2.0和OpenID Connect的实现该实现使向Spring Boot应用程序添加单点登录SSO变得容易。 我们的API使您能够 验证和授权用户 存储有关您的用户的数据 执行基于密码的社交登录 通过多因素身份验证保护您的应用程序 以及更多 查看我们的产品文档以获取更多信息 注册一个永久免费的开发者帐户 完成后再回来学习更多关于使用Spring Boot和Spring Security构建身份验证的信息。 除此之外您还需要一台计算机和一个Web浏览器。 如果没有这些那么你会在这里怎么样 下载Spring Security示例应用程序 继续并从本教程的GitHub存储库下载示例应用程序。 git clone https://github.com/oktadeveloper/okta-spring-security-authentication-example.git 在项目中您将看到三个目录 basic-auth form-auth okta-oauth 通过Spring Security深入了解基本身份验证 到目前为止基本身份验证是最简单的方法。 不幸的是它是为在互联网上更简单的时间而设计的。 对于专业应用程序它并不是真正起作用。 有时当我需要一些简单而又快速的工具来使临时冲浪者脱离页面时我便将其用于内部工具。 但是基本身份验证在HTTP身份验证标头中以基本纯文本格式base64编码向用户发送凭据。 因此基本身份验证应始终与SSL结合使用以保护用户凭据。 基本身份验证还使用浏览器生成的弹出面板来检索用户凭据。 面板不能设置样式或自定义。 首先看一下build.gradle文件。 plugins { id org.springframework.boot version 2.1.5.RELEASE id java } apply plugin: io.spring.dependency-management group com.okta.springsecurityauth version 0.0.1-SNAPSHOT sourceCompatibility 1.8 repositories { mavenCentral() } dependencies { implementation org.springframework.boot:spring-boot-starter-security implementation org.springframework.boot:spring-boot-starter-web testImplementation org.springframework.boot:spring-boot-starter-test testImplementation org.springframework.security:spring-security-test } 此行设置Spring Boot版本 id org.springframework.boot version 2.1.5.RELEASE 这是包括Spring Security和Spring MVC的两个依赖项。 implementation org.springframework.boot:spring-boot-starter-security implementation org.springframework.boot:spring-boot-starter-web 其余的几乎都是样板。 这是主应用程序文件 src/main/java/com/okta/springsecurityauth/Application.java 。 package com.okta.springsecurityauth; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; SpringBootApplication public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } } 这是Java应用程序的入口点。 要注意的主要事情是数量很少。 SpringBootApplication注释告诉Spring引导所有Spring Boot优点。 接下来看一下WebController src/main/java/com/okta/springsecurityauth/WebController.java 。 package com.okta.springsecurityauth; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; Controller public class WebController { RequestMapping(/)ResponseBodypublic String index() {return Welcome home!;} } Web控制器文件还有更多操作。 这是定义项目的唯一HTTP端点的地方。 该文件定义了一个简单的home控制器该控制器返回文本字符串。 Controller批注告诉Spring该文件正在定义Web控制器端点。 RequestMapping批注定义HTTP请求和控制器方法之间的映射。 ResponseBody注释告诉Spring该方法将直接以String的形式返回请求主体而不是返回模板文件的名称。 最后一个文件是定义所有安全性的位置。 巧妙地将其命名为SecurityConfiguration.java 。 看看src/main/java/com/okta/springsecurityauth/SecurityConfiguration.java package com.okta.springsecurityauth; import org.springframework.context.annotation.Configuration; import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; Configuration public class SecurityConfiguration extends WebSecurityConfigurerAdapter { Override public void configure(HttpSecurity http) throws Exception { http .authorizeRequests() .anyRequest().authenticated() .and() .httpBasic(); } Override protected void configure(AuthenticationManagerBuilder auth) throws Exception { auth.inMemoryAuthentication() .withUser(user) .password({noop}pass) // Spring Security 5 requires specifying the password storage format .roles(USER); } } 您会看到需要很少的配置。 在第一种方法中将fluent API与HttpSecurity对象一起使用以配置Spring Security激活安全性对所有请求进行身份验证并使用HTTP basic。 第二种方法实际上只是本教程的一点技巧。 它配置内存中的身份验证管理器并创建一个凭据为user:pass 。 试一试吧 在终端上转到项目的根目录。 使用以下项目运行项目 ./gradlew bootRun 。 导航到http://localhost:8080 。 您将看到浏览器生成的登录表单。 输入凭证user并pass 。 您会看到一个成功的页面上面写着“欢迎回家” 使用Spring Security升级到基于表单的身份验证 HTTP Basic身份验证非常简单实际上在现实世界中并没有那么有用。 基于表单的身份验证要现实得多。 在您的IDE中打开/form-auth文件夹。 build.gradle文件是相同的。 Application.java和WebController.java文件也是如此。 唯一的重大更改是在SecurityConfiguration.java文件中并且在此文件中仅一行已更改。 src/main/java/com/okta/springsecurityauth/SecurityConfiguration.java package com.okta.springsecurityauth; ... Configuration public class SecurityConfiguration extends WebSecurityConfigurerAdapter { Override public void configure(HttpSecurity http) throws Exception { http .authorizeRequests() .anyRequest().authenticated() .and() .formLogin(); //See how ridiculously simple Spring is making things for us. All you had to do was change the httpBasic() fluent method to formLogin() and Spring Boot automatically generates a login form for you.Run it using ./gradlew bootRun .You’ll see the auto-generated Spring Boot login form. 但是如果您想样式化自己的自定义表单而不是使用Spring生成的表单该怎么办 没有太多的工作了。 首先将Thymeleaf依赖项添加到build.gradle文件中 dependencies { ...implementation org.springframework.boot:spring-boot-starter-thymeleaf ... } 使用两个新的控制器方法更新WebController.java文件 package com.okta.springsecurityauth; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; Controller public class WebController { RequestMapping(/) ResponseBody public String index() { return You made it!; } RequestMapping(/login.html) public String login() { return login.html; } RequestMapping(/login-error.html) public String loginError(Model model) { model.addAttribute(loginError, true); return login.html; } } 请注意/ /login-error.html路径使用与/login.html路径相同的模板但向Model添加了loginError属性。 这只是处理错误的一种方式。 另外请注意新的控制器方法没有ResponseBody批注。 这与新的Thymeleaf依赖性相结合意味着这些方法将返回要呈现的模板的名称与原始响应相反。 默认情况下假定模板位于src/main/resources/templates文件夹中。 添加一个新文件 src/main/resources/templates/login.html !DOCTYPE html html xmlns:thhttp://www.thymeleaf.org head titleLogin page/title style #container { padding-top:50px; width:400px; margin: 0 auto; font-size:1.5rem; } input { width: 100%; display:block; padding: 5px; font-size: 1.1rem; box-sizing: border-box; } label { margin-top:10px; display:block; } #submit, #submit:focus { margin-top: 20px; border-radius: 8px; padding: 10px; color: white; background-color: #2084ba; border: none; } .error { color: white; background-color: indianred; opacity: 0.7; padding: 10px; width: 100%; text-align: center; box-sizing: border-box; border-radius: 8px; } /style /head body div idcontainer h2Login page/h2 form th:action{/login.html} methodpost label forusernameUser/label input typetext idusername nameusername autofocusautofocus / label forpasswordPass/label input typepassword idpassword namepassword / input idsubmit typesubmit valueLog in / /form p th:if${loginError} classerrorThere was a problem logging you in/p /div /body /html 这是用于登录页面的Thymeleaf模板文件。 Thymeleaf是与Spring Boot一起使用的标准模板系统。 这是一个功能齐全的模板系统具有大量功能。 查看项目网站以获取更多信息。 您需要做的最后更改是更新SecurityController.java文件中的configure(HttpSecurity http)方法 package com.okta.springsecurityauth; ... Configuration public class SecurityConfiguration extends WebSecurityConfigurerAdapter { Override public void configure(HttpSecurity http) throws Exception { http .authorizeRequests() .anyRequest().authenticated() .and() .formLogin() .loginPage(/login.html) .failureUrl(/login-error.html) .permitAll(); } ... } 添加了以下三行 .loginPage(/login.html) .failureUrl(/login-error.html) .permitAll(); 它们定义了自定义登录端点登录错误端点并指示Spring Security允​​许对这些端点的所有请求。 使用./gradlew bootRun再次运行该应用程序。 这次您将看到自定义登录表单。 几乎是SAML时间 Spring Security SAML扩展目前正在不断变化。 有一些非官方的2.x发行版可以运行但是没有得到官方的支持。 从Spring Security SAML GitHub页面 该项目正在被重写。 有一个在一个基实现发展 包括在里程碑版本里程碑库。 在development-3.0分支中我们正在创建一个在里程碑之上构建的解决方案并与Spring Security更好地保持一致。 该分支的目的是将其与Spring Security项目合并并作为Spring Security核心的一部分发布。 因此我们将不会发布2.0.0里程碑的任何正式版本但将对其进行维护直到该里程碑中存在的所有功能都属于Spring Security。 如果您想冒险进入Spring Boot SAML的当前状态 Spring SAML Extension Docs是一个不错的起点。 Okta的Matt Raible也提供了一个很棒的教程 说明如何使用Spring Boot 1.x实现SAML。 Vincenzo De Notari提供了一个使用SAML 2.0和Spring Boot 2.1.3 的示例服务提供程序实现 。 注意如果要使用Okta测试SAML则需要请求Okta企业版试用。 添加OAuth 2.0 OpenID Connect身份验证 进入developer.okta.com仪表板后创建一个OIDC应用程序 在顶部菜单中单击“ 应用程序” 单击绿色的添加应用程序按钮 单击“ Web应用程序类型”然后单击“下一步”。 为应用命名 。 任何名字。 将登录重定向URI设置为http://localhost:8080/login/oauth2/code/okta 单击完成 。 记下页面底部的客户端ID和客户端密钥 。 您将需要这些。 大 这就是将Okta配置为OIDC提供程序所要做的。 从示例存储库中打开oauth-okta目录。 在执行其他任何操作之前您需要更新src/main/resources/application.yml文件。 您需要填写三个值 Okta URL类似https://dev-123456.okta.com/oauth2/default 客户端ID来自您刚创建的OIDC应用 客户端机密也来自您刚创建的OIDC应用 okta: oauth2: issuer: https://{yourOktaDomain}/oauth2/default client-id: {yourClientID}client-secret: {yourClientSecret} spring: thymeleaf: cache: false 接下来查看build.gradle文件的dependencies部分。 dependencies { implementation com.okta.spring:okta-spring-boot-starter:1.2.0 implementation org.springframework.boot:spring-boot-starter-web ... } 您会注意到一个新的依赖项并且不再需要spring-boot-starter-security okta-spring-boot-starter Okta Spring Boot Starter是Okta的扩展它简化了与OAuth和Spring Security相关的某些依赖项管理和配置。 您可以查看项目GitHub页面以获取更多信息。 老实说该项目的其余部分非常简单。 Application.java文件是相同的。 WebController.java文件添加了一些新方法。 实际上这可能与前几个示例相同只是返回了一个字符串但是我认为演示如何访问某些经过身份验证的用户信息会很好。 package com.okta.springsecurityauth; ... Controller public class WebController {RequestMapping(/)ResponseBodypublic String home(AuthenticationPrincipal OidcUser oidcUser) {return Welcome, oidcUser.getFullName();}RequestMapping(/attributes)ResponseBodypublic String attributes(AuthenticationPrincipal OidcUser oidcUser) {return oidcUser.getAttributes().toString();}RequestMapping(/authorities)ResponseBodypublic String authorities(AuthenticationPrincipal OidcUser oidcUser) {return oidcUser.getAuthorities().toString();}} / home端点返回欢迎消息和OIDC用户的全名。 /attributes端点返回应用程序从Okta接收到的用户属性。 /authorities端点返回用户权限角色和作用域。 这些必须与授权有关以定义允许用户执行的动作或用户可以访问和修改的资源。 您会注意到没有SecurityConfiguration.java文件。 在这个简单的示例中这是不必要的因为OAuth是默认的身份验证方案默认情况下所有路径都需要身份验证这就是我们想要的。 大 现在尝试一下。 使用./gradlew bootRun在oauth-okta ./gradlew bootRun目录中运行该应用程序。 导航到http://localhost:8080/ 。 如果您想查看Okta的托管登录屏幕则可能需要使用隐身窗口或退出Okta开发人员仪表板。 使用Okta登录名登录您将被带到一个类似以下内容的屏幕 Welcome, Andrew Hughes 您也可以尝试使用http://localhost:8080/attributes端点和http://localhost:8080/authorities端点。 通过身份验证完成Spring Boot Spring Security App 在本教程中您介绍了一些Spring Boot和Spring Security身份验证方法。 您从HTTP基础开始 使用自动生成的表单进入基于表单的身份验证 然后自定义应用程序以将Thymeleaf模板用于登录表单。 接下来您使用Okta和Spring Boot实现了OAuth / OIDC单一登录应用程序。 您可以在GitHub上的本教程中找到所有示例的源代码。 如果您想了解有关Spring BootSpring Security或安全身份验证的更多信息请查看以下任何出色的教程 Spring BootOAuth 2.0和Okta入门 15分钟内将单一登录添加到您的Spring Boot Web App 使用多重身份验证保护您的Spring Boot应用程序安全 使用Spring Boot和GraphQL构建安全的API 如果您想深入研究请查看Okta Spring Boot Starter GitHub页面 。 如果您对此帖子有任何疑问请在下面添加评论。 有关更多精彩内容 请在Twitter上关注oktadev 在Facebook上关注我们或订阅我们的YouTube频道 。 “具有Spring Security的简单身份验证”最初于2019年5月31日发布在Okta Developer博客上。 朋友不允许朋友写用户身份验证。 厌倦了管理自己的用户 立即尝试Okta的API和Java SDK。 在几分钟之内即可对任何应用程序中的用户进行身份验证管理和保护。 翻译自: https://www.javacodegeeks.com/2019/07/simple-authentication-spring-security.html
http://www.lebaoying.cn/news/38061.html

相关文章:

  • 戴南做网站河南海绵城市建设网站
  • 有口碑的南昌网站建设公司网站内容相近
  • 网上建立公司网站北京最牛计算机培训机构
  • 高端网络公司网站源码wordpress主页乱码
  • 三栏式布局的网站有哪些怎样做网站认证
  • wordpress优秀移动站点堆龙德庆网站建设
  • 舆情网站直接打开怎么自己做网站模板
  • 国家企业信用信息公示系统官网站用织梦做视频网站好不好
  • 提供信息门户网站制作网页设计一般尺寸
  • 子网站如何做管理软件是什么
  • 哪个公司可以做网站广州什么地方好玩的景点推荐
  • 网站建设搜狐四川住房和城乡建设厅网站
  • 郑州网站建设最低价营销网站建设平台
  • 青岛网站制作需要多少钱游戏广告投放平台
  • 济南优化网络营销邯郸网站建设优化排名
  • 做外贸网站包括哪些seo职位是什么意思
  • 响应式网站广州网站建设青海网站建设 小程序开发
  • 手机网页设计制作网站seo权重查询
  • 网络营销之网站建设制作网页的详细步骤
  • 如何给网站添加外链网站后台注入
  • 网站cms模板娄底网站建设企业
  • 金湖有哪里做网站的做软件项目的网站
  • 网站建设发展方向有哪些wordpress 相册
  • 宜昌住房与城乡建设部网站网站开发数据库课程设计
  • 国外网站推广平台有哪些公司如何自己建网站企业网站
  • 门户网站的优缺点一支部一品牌一特色方案
  • 做 专而精 的网站西地那非片的功效是多长时间
  • 小公司网站建设wordpress搬家插件
  • 建设手机版网站做外贸如何建立网站
  • 网站建设接单技巧网站怎么做seo收录