java.io.IOException: Server returned HTTP response code: 401 for URL: at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source) at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(Unknown Source) at Authenticate.authenticateUrl(Authenticate.java:62) at Authenticate.main(Authenticate.java:84)
这是因为请求需要权限验证的原因,可以通过下面的方式解决
public static JSONObject requestGet(String urlstr,JSONObject body){ JSONObject result=null; try{ URL url=new URL(urlstr); URLConnection conn=url.openConnection(); HttpURLConnection httpUrlConnection = (HttpURLConnection)conn; httpUrlConnection.setRequestMethod("GET"); httpUrlConnection.setRequestProperty("accept", "application/json"); httpUrlConnection.setRequestProperty("content-type", "application/json"); String encoding = Base64.encode("username:password".getBytes("UTF-8")); httpUrlConnection.setRequestProperty("Authorization", String.format("Basic %s", encoding)); httpUrlConnection.setDoInput(true); if(body!=null){ httpUrlConnection.setDoOutput(true); OutputStream os=httpUrlConnection.getOutputStream(); IOUtils.write(body.toString(), os, "utf-8"); os.flush(); } BufferedReader in = new BufferedReader(new InputStreamReader( httpUrlConnection.getInputStream(),"utf-8")); String str=""; String inputLine; while ((inputLine = in.readLine()) != null) { str+=inputLine; } in.close(); System.out.println("str:"+str); result=new JSONObject(str); }catch(Exception e){ e.printStackTrace(); } return result; }
相关推荐
1. **设置认证**:在初始化JIRA客户端时,需要提供JIRA服务器的URL以及认证信息,通常使用Basic Authentication(基础认证),即用户名+Base64编码的密码。 2. **创建客户端**:使用`...
本项目"testproject.zip"似乎是一个关于如何在Java环境中使用HTTP请求实现基本(Basic)身份验证来获取Token的示例。下面我们将详细探讨这个过程中的相关知识点。 首先,我们要理解什么是基本认证(Basic ...
开发者主要通过`weibo.java`中的函数接口来实现数据交互,该核心类处理用户请求并响应服务器。`weibo4j.org.json`包负责JSON数据的解析,而`weibo4j.http`则封装了对API接口的调用函数。`user.java`和`status.java`...
一旦验证成功,系统会创建一个Authentication对象,并通过SecurityContextHolder将其上下文存储起来,以便后续请求可以使用。 3. 身份验证:Spring Security支持多种身份验证机制,如HTTP Basic Auth、Form Login、...
在Spring Security 3中,我们可以通过配置`<http>`元素来定义认证行为,例如设置登录URL、失败URL以及使用哪种认证管理器。 授权则涉及到确定用户是否有权访问特定资源。Spring Security支持基于角色的访问控制...
- `authentication-manager`: 它是身份验证管理器,负责处理用户的登录请求。可以定义不同的`authentication-provider`来实现不同类型的认证机制,如数据库认证、LDAP认证等。 - `user-service`: 这个bean用于存储...
- **XML配置**:传统上,SpringSecurity可以通过XML配置文件进行设置,但现在更推荐使用Java配置。 - **Java配置**:使用`@EnableWebSecurity`注解开启安全配置,然后通过`WebSecurityConfigurerAdapter`自定义...
调用时,客户端需要构造SOAP请求消息,并发送到服务端的指定URL。 2. **RESTful API调用**:REST(Representational State Transfer)是一种轻量级的调用方式,使用HTTP方法如GET、POST、PUT、DELETE等来操作资源。...
5. **访问决策管理(Access Decision Manager)**:当用户尝试访问受保护的资源时,访问决策管理器将决定是否允许访问。可以通过配置不同的访问决策策略,如多数投票、第一个通过等。 6. **加密(Cryptography)**...
这段代码配置了URL的访问控制规则,如只有角色为"ADMIN"的用户可以访问/admin/*路径,"USER"或"ADMIN"可以访问/user/*,其他所有请求允许所有人访问。同时,配置了表单登录和登出的相关设置。 **Spring Security 的...
1. **Authentication**:认证是验证用户身份的过程,Spring Security提供了AbstractUserDetailsAuthenticationProvider、DaoAuthenticationProvider等实现,用于处理不同来源的身份验证请求。 2. **Authorization**...
它通过AOP(面向切面编程)来实现对请求的拦截,确保只有经过身份验证和授权的用户才能访问特定资源。 2. **SpringSecurity核心概念** - **Authentication**(认证):确认用户身份的过程,通常涉及用户名和密码。...
Spring Security 是一个强大的安全框架,主要用于Java应用的安全管理,它为Web应用程序提供了全面的身份验证、授权和访问控制功能。在Spring Boot中集成Spring Security,可以让开发者轻松地在项目中实现安全控制,...
这里配置了一个简单的基于表单的登录页面,并设置了不同 URL 的访问权限。 #### 五、总结 Spring Security 作为一个成熟且功能丰富的安全框架,为基于 Spring 的企业应用提供了强大的安全支持。通过对认证、授权等...
- **Basic Authentication**:使用HTTP的基本认证头进行身份验证。 - **Form Login**:通过HTML表单提交用户名和密码进行登录。 - **Remember Me Services**:允许用户选择在一段时间内保持登录状态。 3. **权限...
Spring Security 是一个强大的安全框架,广泛应用于Java EE和Spring应用中,用于提供全面的安全解决方案。在"Spring Security学习之路"这个主题中,我们将深入探讨如何使用这个框架来实现登录界面和其他安全相关的...
- **安全元数据(Security Metadata)**:元数据定义了哪些URL、方法或资源需要哪些安全约束。这通常通过`http`元素在XML配置中定义,也可以使用Java配置。 3. **核心组件** - **AuthenticationManager**:负责...
5. **异常处理**:当请求未通过授权检查时,Spring Security会抛出异常。为了提供友好的错误响应,我们需要配置异常处理器,例如`AccessDeniedHandler`和`AuthenticationEntryPoint`。 在实际应用中,可能还需要...