从Spring Boot 1.3.3应用程序中使用Spring Security 4.0.3。
该应用程序有两种类型的HTTP内容:“API”是REST API,“UI”是基于web的二手界面(Thymeleaf Spring web MVC)。
应用程序的REST API的大多数endpoint都是安全的,使用的是Basic,但有些endpoint不是,并且应该始终可用。
简化的配置如下所示:
// In one method, the security config for the "API"
httpSecurity
.antMatcher("/api/**")
.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.NEVER)
.and()
.authorizeRequests()
.antMatchers("/api/ping").permitAll()
.antMatchers("/api/**").hasRole("USER")
.and()
.httpBasic();
// In another method, the security config for the "UI"
httpSecurity
.authorizeRequests()
.antMatchers("/ui/", "/ui/index.html", "/ui/css/*", "/ui/js/*", "/ui/img/*").permitAll()
.antMatchers("/ui/user/**").hasRole("USER")
.antMatchers("/ui/**").denyAll()
.and()
.formLogin().loginPage("/ui/login.html").permitAll().failureUrl("/ui/login.html").defaultSuccessUrl("/ui/user/main.html")
.and()
.logout().logoutUrl("/ui/logout").permitAll().logoutSuccessUrl("/ui/login.html")
.and()
.httpBasic();
对安全endpoint的访问按预期进行。
但当用户提供了无效的基本身份验证时,对公共endpoint(如“../api/ping”)的访问会以401失败。当然,当没有提供基本身份验证或基本身份验证有效时,这样的endpoint可以正常工作。
来自Spring Security的401令人惊讶。我们如何实现一个Spring Security配置,它永远不会为所选endpoint返回任何401或403?
谢谢你抽出时间。
更新1:添加了关于“UI”存在和安全配置的信息
秩序很重要。最具体的规则(路径)首先:
httpSecurity
.antMatchers("/api/ping").permitAll()
// and then the rest
这是因为如果在antMatcher("/api/**")
上存在匹配,Spring Security将不会评估后面的规则。
我正在使用Spring进行MVC测试 这是我的测试课 这里是MVC配置 这是安全配置 当我运行测试时,测试失败,并显示以下消息: 我知道它失败是因为url受到Spring Security性的保护,但当我运行应用程序时,即使没有经过身份验证,我也可以访问该url。 我做错什么了吗?
我正在尝试通过Spring Security进行LDAP身份验证。但它返回一个错误: 错误代码49-80090308:LDAPPER:DSID-0C090D9,注释:AcceptSecurityContext错误,数据52e,v2580] 我的代码: 可以是什么样的错误(不包括错误的凭据)?
我使用的是DocuSign C#客户端库。 为了获得签名URL,我使用函数(https://developers.docusign.com/esign-rest-api/reference/envelopes/envelopeViews/createRecipient)。
本节提供的源代码的例子来说明如何使用 JSSE 将不安全的 Socket 连接转为安全的 Socket 连接。本节中的代码摘自本书 Java SE 6 Network Security(Marco Pistoia 等著)。 第一个例子是“没有 SSL 的 Socket 实例”的示例代码,可以使用不安全的 Socket 设置客户端和服务器之间的通信。此代码是在“使用 SSL 的 Socket 实例”
本文向大家介绍如何使用SpringSecurity保护程序安全,包括了如何使用SpringSecurity保护程序安全的使用技巧和注意事项,需要的朋友参考一下 首先,引入依赖: 引入此依赖之后,你的web程序将拥有以下功能: 所有请求路径都需要认证 不需要特定的角色和权限 没有登录页面,使用HTTP基本身份认证 只有一个用户,名称为user 配置SpringSecurity springsecur