使用jersey框架的客户端部分。模拟调用。代码如下 。
package jersey.authbase; import javax.ws.rs.client.Client; import javax.ws.rs.client.ClientBuilder; import javax.ws.rs.core.Response; import org.glassfish.jersey.client.authentication.HttpAuthenticationFeature; /** * <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.1.0</version> <scope>provided</scope> </dependency> <dependency> <groupId>org.glassfish.jersey.core</groupId> <artifactId>jersey-client</artifactId> <version>2.13</version> </dependency> </dependencies> jersey 客户端介绍 https://jersey.java.net/documentation/latest/client.html * */ public class DemoClient { public static void main(String[] args) { new DemoClient().metho2Test(); new DemoClient().metho4Test(); new DemoClient().metho3Test(); } public void metho1Test(){ final Client client = ClientBuilder.newClient(); client.register(DemoClient.getHttpAuthenticationFeatureWithNonPreemptive("admin", "1126")); String userName = "admin"; String appUrl = "http://127.0.0.1:8080"; String url = String.format("%s/auth/rest/users/user/%s", appUrl, userName); final Response response = client.target(url).request().get(); System.out.println(response.getStatus()); System.out.println(response.readEntity(String.class)); } public void metho2Test(){ String username = "admin"; String password = "1126"; final Client client = ClientBuilder.newClient(); client.register(DemoClient.getHttpAuthenticationFeatureWithNonPreemptive(username, password)); String appUrl = "http://127.0.0.1:8080"; String url = String.format("%s/auth/rest/users/getCurrentUser", appUrl); final Response response = client.target(url).request().get(); System.out.println(response.getStatus()); System.out.println(response.readEntity(String.class)); } public void metho3Test(){ String username = "admin"; String password = "1126"; final Client client = ClientBuilder.newClient(); client.register(DemoClient.getHttpAuthenticationFeatureWithNonPreemptive(username, password)); String appUrl = "http://127.0.0.1:8080"; String url = String.format("%s/auth/rest/userGroups/children", appUrl); final Response response = client.target(url).request().get(); System.out.println(response.getStatus()); System.out.println(response.readEntity(String.class)); } public void metho4Test(){ String username = "admin"; String password = "1126"; final Client client = ClientBuilder.newClient(); client.register(DemoClient.getHttpAuthenticationFeatureWithNonPreemptive(username, password)); String appUrl = "http://127.0.0.1:8080"; String url = String.format("%s/auth/rest/users/current", appUrl); final Response response = client.target(url).request().get(); System.out.println(response.getStatus()); System.out.println(response.readEntity(String.class)); } /** * 每次调用都要更换用户名\密码 */ public void test(){ final Client client = ClientBuilder.newClient(); final Response response = client.target("http://localhost:8080/rest/homer/contact").request() .property(HttpAuthenticationFeature.HTTP_AUTHENTICATION_BASIC_USERNAME, "homer") .property(HttpAuthenticationFeature.HTTP_AUTHENTICATION_BASIC_PASSWORD, "p1swd745").get(); } public static HttpAuthenticationFeature getHttpAuthenticationFeatureWithNonPreemptive(String username,String password){ HttpAuthenticationFeature feature = HttpAuthenticationFeature.basicBuilder() .nonPreemptive().credentials(username, password).build(); return feature; } public HttpAuthenticationFeature getHttpAuthenticationFeatureWithNonPreemptive(){ HttpAuthenticationFeature feature = HttpAuthenticationFeature.basicBuilder().build(); return feature; } }
相关推荐
SpringBoot+SpringSecurity处理Ajax登录请求问题 SpringBoot+SpringSecurity处理Ajax登录请求问题是SpringBoot开发中的一個常见问题,本文将详细介绍如何使用SpringBoot+SpringSecurity处理Ajax登录请求问题。 ...
而Spring Security 则是 Java 开发中广泛使用的安全框架,用于实现认证和授权。当我们将这两者结合时,我们可以创建一个强大的统一登录认证鉴权系统。 首先,让我们深入了解Spring Cloud Gateway。这是一个基于...
- Spring Security 可以与OAuth2框架集成,提供第三方服务的认证和授权,支持资源服务器、认证服务器和客户端的角色。 8. **Spring Security ACL**: - 对象级权限管理(ACL)允许开发者对应用内的具体对象实施细...
Spring Security 是一个强大的和高度可定制的身份验证和访问控制框架,用于Java应用程序。它提供了全面的安全解决方案,包括用户认证、授权、CSRF防护、会话管理等。在深入研究Spring Security的源码之前,我们需要...
在"Spring Security双模认证"中,我们关注的是同时支持基于客户端证书和表单登录的两种认证方式。 1. **客户端证书认证**: 客户端证书认证是一种安全的网络身份验证方法,它使用X.509数字证书来确认用户身份。在...
Spring Security OAuth2是一个强大的安全框架,它为Web应用程序提供了安全认证和授权的功能。OAuth2则是一种开放标准,允许用户授权第三方应用访问他们存储在另一服务提供商的数据,而无需分享他们的用户名和密码。...
例如,`spring-security-core`负责基本的认证和授权逻辑,`spring-security-web`处理与Web安全相关的请求过滤,而`spring-security-config`则简化了在Spring应用上下文中定义安全规则的过程。 使用时,开发者可以...
在Spring Security中,我们可以使用OAuth2提供者模式,创建一个认证服务器,它处理客户端的授权请求,生成访问令牌。常见的OAuth2流程包括授权码(Authorization Code)流、隐式(Implicit)流、客户端凭证(Client ...
3. 集成SpringSecurity:配置SpringSecurity的WebSecurityConfigurerAdapter,设置登录认证、权限控制等规则。确保WebSocket连接也需要经过SpringSecurity的认证。 4. 客户端支持:在前端JavaScript中使用WebSocket ...
Spring Security为开发者提供了一个完整的安全解决方案,它不仅包括了安全框架核心的认证和授权,还包含了防止跨站请求伪造(CSRF)、点击劫持、会话固定等安全威胁的防护机制。Spring Security的配置灵活,可以通过...
本课程"Spring Security+OAuth2 精讲,打造企业级认证与授权"深入浅出地讲解了这两个框架的使用和集成,旨在帮助开发者构建安全、高效的应用系统。 Spring Security是Spring生态系统中的一个强大安全框架,它提供了...
Spring Security 是一个强大的Java安全框架,用于保护基于Spring的应用程序。它提供了全面的安全服务,包括认证、授权、CSRF防护、会话管理等。在深入理解Spring Security之前,我们需要了解几个核心概念: 1. **...
- **AuthenticationEntryPoint**:处理未认证请求的入口点。 - **验证机制**:Spring Security 支持多种验证机制,包括用户名/密码、OpenID、OAuth2 等。 - **在请求之间保存 SecurityContext**:通过 ...
2. 请求到达Spring Security的Filter Security Interceptor,该拦截器会检查请求是否需要认证。 3. 如果需要认证,请求会被转发到Authentication Provider。 4. Authentication Provider验证用户名和密码,如果验证...
确保它们正确配置并运行,能够处理来自客户端的认证请求。这部分不涉及具体代码,但需要理解服务端的配置,如服务注册、票证生命周期、SSL设置等。 6. **客户端代码实现**:在`otastac-remote-api`、`otastac-api`...
资源所有者是拥有受保护资源的用户,客户端是请求访问资源的应用,资源服务器是存储并提供受保护资源的地方,而授权服务器负责验证资源所有者的身份,并向客户端发放访问令牌。 Spring Security OAuth2.0 提供了...
Spring Security OAuth2.0 是一个广泛使用的Java安全框架,它为构建安全的Web应用程序提供了强大的支持。OAuth2.0是授权框架的一个标准,允许第三方应用在用户授权的情况下访问其私有资源,而无需共享用户的登录凭证...
Spring Security 是一个强大的安全框架,用于Java和Spring应用程序。它为Web应用提供了全面的安全解决方案,包括身份验证、授权以及会话管理。在这个“spring-security cookie认证”主题中,我们将深入探讨如何利用...
Spring Boot简化了Spring应用的初始搭建以及开发过程,而Spring Security则提供了全面的安全管理解决方案,包括认证、授权等。在这个“springboot springsecurity动态权限控制”的主题中,我们将深入探讨如何在...
由于SpringSecurity的异常处理和mvc的异常处理是不一样的,认证类异常和权限异常了,并不会被全局异常捕获,而是SpringSecurity内部自己做了处理逻辑。 思路分析 我已经将本次请求的url添加到忽略名单里面了,起始...