Rest Spring MVC 3.1中的基本身份验证
我正在尝试使用SpringMVC3.1和RESTAPI开发一个示例应用程序 有一个登录表单,用于在用户进入应用程序之前对其进行身份验证。我想使用RESTAPI进行基本身份验证,使用用户在登录表单中提供的凭据(用户名和密码) 我的问题是,我不知道如何使用RESTAPI进行基本身份验证 我已经搜索了很多,但没有得到任何正确的教程,从那里我可以解决我的错误 有谁能给我指点路或告诉我什么好文章吗 现在我正在学习以下教程 但是得到空指针异常 RestClient.javaRest Spring MVC 3.1中的基本身份验证,rest,spring-mvc,spring-security,basic-authentication,restful-authentication,Rest,Spring Mvc,Spring Security,Basic Authentication,Restful Authentication,我正在尝试使用SpringMVC3.1和RESTAPI开发一个示例应用程序 有一个登录表单,用于在用户进入应用程序之前对其进行身份验证。我想使用RESTAPI进行基本身份验证,使用用户在登录表单中提供的凭据(用户名和密码) 我的问题是,我不知道如何使用RESTAPI进行基本身份验证 我已经搜索了很多,但没有得到任何正确的教程,从那里我可以解决我的错误 有谁能给我指点路或告诉我什么好文章吗 现在我正在学习以下教程 但是得到空指针异常 RestClient.java import org.sprin
import org.springframework.web.client.RestTemplate;
public class RestClient {
RestTemplate restTemplate = new RestTemplate();
static final String URL = "http://www.assembla.com/spaces/my_spaces";
static final String username = "aaaaa";
static final String password = "aaaaa";
public RestClient() {
BasicSecureSimpleClientHttpRequestFactory requestFactory = new BasicSecureSimpleClientHttpRequestFactory();
requestFactory.setCredentialsProvider(new SimpleCredentialsProvider(
new Credentials(username, password)));
restTemplate.setRequestFactory(requestFactory);
}
public void exec() {
System.out.println("restTemplate :::::::::::::::::: " + restTemplate);
String response = restTemplate.getForObject(URL, String.class);
System.out.println("Response:::::::::::::: " + response);
}
}
import java.net.HttpURLConnection;
import sun.misc.BASE64Encoder;
public class BasicSecureSimpleClientHttpRequestFactory extends
SecureSimpleClientHttpRequestFactory {
public BasicSecureSimpleClientHttpRequestFactory() {
}
protected void prepareSecureConnection(HttpURLConnection connection) {
if (credentialsProvider == null) {
return;
}
Credentials credentials = credentialsProvider.getCredentials(null);
String token = credentials.getUsername() + ":"
+ credentials.getPassword();
BASE64Encoder enc = new sun.misc.BASE64Encoder();
String encodedAuthorization = enc.encode(token.getBytes());
connection.setRequestProperty("Authorization", "Basic "
+ encodedAuthorization);
}
}
import java.io.IOException;
import java.net.HttpURLConnection;
import java.net.URI;
import org.springframework.http.HttpMethod;
import org.springframework.http.client.ClientHttpRequest;
import org.springframework.http.client.SimpleClientHttpRequestFactory;
abstract public class SecureSimpleClientHttpRequestFactory extends
SimpleClientHttpRequestFactory {
protected CredentialsProvider credentialsProvider;
public SecureSimpleClientHttpRequestFactory() {
}
public CredentialsProvider getCredentialsProvider() {
return credentialsProvider;
}
public void setCredentialsProvider(CredentialsProvider credentialsProvider) {
this.credentialsProvider = credentialsProvider;
}
@Override
public ClientHttpRequest createRequest(URI uri, HttpMethod httpMethod)
throws IOException {
HttpURLConnection connection = openConnection(uri.toURL(), null);
prepareConnection(connection, httpMethod.name());
prepareSecureConnection(connection);
return new SecureSimpleClientHttpRequest(connection);
}
abstract protected void prepareSecureConnection(HttpURLConnection connection);
}
import java.io.IOException;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URI;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpMethod;
import org.springframework.http.client.ClientHttpRequest;
import org.springframework.http.client.ClientHttpResponse;
public class SecureSimpleClientHttpRequest implements ClientHttpRequest {
public SecureSimpleClientHttpRequest(HttpURLConnection connection) {
// TODO Auto-generated constructor stub
}
@Override
public HttpMethod getMethod() {
// TODO Auto-generated method stub
return null;
}
@Override
public URI getURI() {
// TODO Auto-generated method stub
return null;
}
@Override
public HttpHeaders getHeaders() {
// TODO Auto-generated method stub
return null;
}
@Override
public OutputStream getBody() throws IOException {
// TODO Auto-generated method stub
return null;
}
@Override
public ClientHttpResponse execute() throws IOException {
// TODO Auto-generated method stub
return null;
}
}
public class SimpleCredentialsProvider implements CredentialsProvider {
private Credentials credentials;
public SimpleCredentialsProvider(Credentials credentials) {
super();
this.credentials = credentials;
}
@Override
public Credentials getCredentials(String str) {
return credentials;
}
}
public interface CredentialsProvider {
public Credentials getCredentials(String str);
}
public class Credentials {
private String username;
private String password;
public Credentials(String username, String password) {
super();
this.username = username;
this.password = password;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
basicsecuresimpleclienthttpprequestfactory.java
import org.springframework.web.client.RestTemplate;
public class RestClient {
RestTemplate restTemplate = new RestTemplate();
static final String URL = "http://www.assembla.com/spaces/my_spaces";
static final String username = "aaaaa";
static final String password = "aaaaa";
public RestClient() {
BasicSecureSimpleClientHttpRequestFactory requestFactory = new BasicSecureSimpleClientHttpRequestFactory();
requestFactory.setCredentialsProvider(new SimpleCredentialsProvider(
new Credentials(username, password)));
restTemplate.setRequestFactory(requestFactory);
}
public void exec() {
System.out.println("restTemplate :::::::::::::::::: " + restTemplate);
String response = restTemplate.getForObject(URL, String.class);
System.out.println("Response:::::::::::::: " + response);
}
}
import java.net.HttpURLConnection;
import sun.misc.BASE64Encoder;
public class BasicSecureSimpleClientHttpRequestFactory extends
SecureSimpleClientHttpRequestFactory {
public BasicSecureSimpleClientHttpRequestFactory() {
}
protected void prepareSecureConnection(HttpURLConnection connection) {
if (credentialsProvider == null) {
return;
}
Credentials credentials = credentialsProvider.getCredentials(null);
String token = credentials.getUsername() + ":"
+ credentials.getPassword();
BASE64Encoder enc = new sun.misc.BASE64Encoder();
String encodedAuthorization = enc.encode(token.getBytes());
connection.setRequestProperty("Authorization", "Basic "
+ encodedAuthorization);
}
}
import java.io.IOException;
import java.net.HttpURLConnection;
import java.net.URI;
import org.springframework.http.HttpMethod;
import org.springframework.http.client.ClientHttpRequest;
import org.springframework.http.client.SimpleClientHttpRequestFactory;
abstract public class SecureSimpleClientHttpRequestFactory extends
SimpleClientHttpRequestFactory {
protected CredentialsProvider credentialsProvider;
public SecureSimpleClientHttpRequestFactory() {
}
public CredentialsProvider getCredentialsProvider() {
return credentialsProvider;
}
public void setCredentialsProvider(CredentialsProvider credentialsProvider) {
this.credentialsProvider = credentialsProvider;
}
@Override
public ClientHttpRequest createRequest(URI uri, HttpMethod httpMethod)
throws IOException {
HttpURLConnection connection = openConnection(uri.toURL(), null);
prepareConnection(connection, httpMethod.name());
prepareSecureConnection(connection);
return new SecureSimpleClientHttpRequest(connection);
}
abstract protected void prepareSecureConnection(HttpURLConnection connection);
}
import java.io.IOException;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URI;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpMethod;
import org.springframework.http.client.ClientHttpRequest;
import org.springframework.http.client.ClientHttpResponse;
public class SecureSimpleClientHttpRequest implements ClientHttpRequest {
public SecureSimpleClientHttpRequest(HttpURLConnection connection) {
// TODO Auto-generated constructor stub
}
@Override
public HttpMethod getMethod() {
// TODO Auto-generated method stub
return null;
}
@Override
public URI getURI() {
// TODO Auto-generated method stub
return null;
}
@Override
public HttpHeaders getHeaders() {
// TODO Auto-generated method stub
return null;
}
@Override
public OutputStream getBody() throws IOException {
// TODO Auto-generated method stub
return null;
}
@Override
public ClientHttpResponse execute() throws IOException {
// TODO Auto-generated method stub
return null;
}
}
public class SimpleCredentialsProvider implements CredentialsProvider {
private Credentials credentials;
public SimpleCredentialsProvider(Credentials credentials) {
super();
this.credentials = credentials;
}
@Override
public Credentials getCredentials(String str) {
return credentials;
}
}
public interface CredentialsProvider {
public Credentials getCredentials(String str);
}
public class Credentials {
private String username;
private String password;
public Credentials(String username, String password) {
super();
this.username = username;
this.password = password;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
SecureSimpleClientHttpRequestFactory.java
import org.springframework.web.client.RestTemplate;
public class RestClient {
RestTemplate restTemplate = new RestTemplate();
static final String URL = "http://www.assembla.com/spaces/my_spaces";
static final String username = "aaaaa";
static final String password = "aaaaa";
public RestClient() {
BasicSecureSimpleClientHttpRequestFactory requestFactory = new BasicSecureSimpleClientHttpRequestFactory();
requestFactory.setCredentialsProvider(new SimpleCredentialsProvider(
new Credentials(username, password)));
restTemplate.setRequestFactory(requestFactory);
}
public void exec() {
System.out.println("restTemplate :::::::::::::::::: " + restTemplate);
String response = restTemplate.getForObject(URL, String.class);
System.out.println("Response:::::::::::::: " + response);
}
}
import java.net.HttpURLConnection;
import sun.misc.BASE64Encoder;
public class BasicSecureSimpleClientHttpRequestFactory extends
SecureSimpleClientHttpRequestFactory {
public BasicSecureSimpleClientHttpRequestFactory() {
}
protected void prepareSecureConnection(HttpURLConnection connection) {
if (credentialsProvider == null) {
return;
}
Credentials credentials = credentialsProvider.getCredentials(null);
String token = credentials.getUsername() + ":"
+ credentials.getPassword();
BASE64Encoder enc = new sun.misc.BASE64Encoder();
String encodedAuthorization = enc.encode(token.getBytes());
connection.setRequestProperty("Authorization", "Basic "
+ encodedAuthorization);
}
}
import java.io.IOException;
import java.net.HttpURLConnection;
import java.net.URI;
import org.springframework.http.HttpMethod;
import org.springframework.http.client.ClientHttpRequest;
import org.springframework.http.client.SimpleClientHttpRequestFactory;
abstract public class SecureSimpleClientHttpRequestFactory extends
SimpleClientHttpRequestFactory {
protected CredentialsProvider credentialsProvider;
public SecureSimpleClientHttpRequestFactory() {
}
public CredentialsProvider getCredentialsProvider() {
return credentialsProvider;
}
public void setCredentialsProvider(CredentialsProvider credentialsProvider) {
this.credentialsProvider = credentialsProvider;
}
@Override
public ClientHttpRequest createRequest(URI uri, HttpMethod httpMethod)
throws IOException {
HttpURLConnection connection = openConnection(uri.toURL(), null);
prepareConnection(connection, httpMethod.name());
prepareSecureConnection(connection);
return new SecureSimpleClientHttpRequest(connection);
}
abstract protected void prepareSecureConnection(HttpURLConnection connection);
}
import java.io.IOException;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URI;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpMethod;
import org.springframework.http.client.ClientHttpRequest;
import org.springframework.http.client.ClientHttpResponse;
public class SecureSimpleClientHttpRequest implements ClientHttpRequest {
public SecureSimpleClientHttpRequest(HttpURLConnection connection) {
// TODO Auto-generated constructor stub
}
@Override
public HttpMethod getMethod() {
// TODO Auto-generated method stub
return null;
}
@Override
public URI getURI() {
// TODO Auto-generated method stub
return null;
}
@Override
public HttpHeaders getHeaders() {
// TODO Auto-generated method stub
return null;
}
@Override
public OutputStream getBody() throws IOException {
// TODO Auto-generated method stub
return null;
}
@Override
public ClientHttpResponse execute() throws IOException {
// TODO Auto-generated method stub
return null;
}
}
public class SimpleCredentialsProvider implements CredentialsProvider {
private Credentials credentials;
public SimpleCredentialsProvider(Credentials credentials) {
super();
this.credentials = credentials;
}
@Override
public Credentials getCredentials(String str) {
return credentials;
}
}
public interface CredentialsProvider {
public Credentials getCredentials(String str);
}
public class Credentials {
private String username;
private String password;
public Credentials(String username, String password) {
super();
this.username = username;
this.password = password;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
SecureSimpleClientHttpRequest.java
import org.springframework.web.client.RestTemplate;
public class RestClient {
RestTemplate restTemplate = new RestTemplate();
static final String URL = "http://www.assembla.com/spaces/my_spaces";
static final String username = "aaaaa";
static final String password = "aaaaa";
public RestClient() {
BasicSecureSimpleClientHttpRequestFactory requestFactory = new BasicSecureSimpleClientHttpRequestFactory();
requestFactory.setCredentialsProvider(new SimpleCredentialsProvider(
new Credentials(username, password)));
restTemplate.setRequestFactory(requestFactory);
}
public void exec() {
System.out.println("restTemplate :::::::::::::::::: " + restTemplate);
String response = restTemplate.getForObject(URL, String.class);
System.out.println("Response:::::::::::::: " + response);
}
}
import java.net.HttpURLConnection;
import sun.misc.BASE64Encoder;
public class BasicSecureSimpleClientHttpRequestFactory extends
SecureSimpleClientHttpRequestFactory {
public BasicSecureSimpleClientHttpRequestFactory() {
}
protected void prepareSecureConnection(HttpURLConnection connection) {
if (credentialsProvider == null) {
return;
}
Credentials credentials = credentialsProvider.getCredentials(null);
String token = credentials.getUsername() + ":"
+ credentials.getPassword();
BASE64Encoder enc = new sun.misc.BASE64Encoder();
String encodedAuthorization = enc.encode(token.getBytes());
connection.setRequestProperty("Authorization", "Basic "
+ encodedAuthorization);
}
}
import java.io.IOException;
import java.net.HttpURLConnection;
import java.net.URI;
import org.springframework.http.HttpMethod;
import org.springframework.http.client.ClientHttpRequest;
import org.springframework.http.client.SimpleClientHttpRequestFactory;
abstract public class SecureSimpleClientHttpRequestFactory extends
SimpleClientHttpRequestFactory {
protected CredentialsProvider credentialsProvider;
public SecureSimpleClientHttpRequestFactory() {
}
public CredentialsProvider getCredentialsProvider() {
return credentialsProvider;
}
public void setCredentialsProvider(CredentialsProvider credentialsProvider) {
this.credentialsProvider = credentialsProvider;
}
@Override
public ClientHttpRequest createRequest(URI uri, HttpMethod httpMethod)
throws IOException {
HttpURLConnection connection = openConnection(uri.toURL(), null);
prepareConnection(connection, httpMethod.name());
prepareSecureConnection(connection);
return new SecureSimpleClientHttpRequest(connection);
}
abstract protected void prepareSecureConnection(HttpURLConnection connection);
}
import java.io.IOException;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URI;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpMethod;
import org.springframework.http.client.ClientHttpRequest;
import org.springframework.http.client.ClientHttpResponse;
public class SecureSimpleClientHttpRequest implements ClientHttpRequest {
public SecureSimpleClientHttpRequest(HttpURLConnection connection) {
// TODO Auto-generated constructor stub
}
@Override
public HttpMethod getMethod() {
// TODO Auto-generated method stub
return null;
}
@Override
public URI getURI() {
// TODO Auto-generated method stub
return null;
}
@Override
public HttpHeaders getHeaders() {
// TODO Auto-generated method stub
return null;
}
@Override
public OutputStream getBody() throws IOException {
// TODO Auto-generated method stub
return null;
}
@Override
public ClientHttpResponse execute() throws IOException {
// TODO Auto-generated method stub
return null;
}
}
public class SimpleCredentialsProvider implements CredentialsProvider {
private Credentials credentials;
public SimpleCredentialsProvider(Credentials credentials) {
super();
this.credentials = credentials;
}
@Override
public Credentials getCredentials(String str) {
return credentials;
}
}
public interface CredentialsProvider {
public Credentials getCredentials(String str);
}
public class Credentials {
private String username;
private String password;
public Credentials(String username, String password) {
super();
this.username = username;
this.password = password;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
SimpleCredentialsProvider.java
import org.springframework.web.client.RestTemplate;
public class RestClient {
RestTemplate restTemplate = new RestTemplate();
static final String URL = "http://www.assembla.com/spaces/my_spaces";
static final String username = "aaaaa";
static final String password = "aaaaa";
public RestClient() {
BasicSecureSimpleClientHttpRequestFactory requestFactory = new BasicSecureSimpleClientHttpRequestFactory();
requestFactory.setCredentialsProvider(new SimpleCredentialsProvider(
new Credentials(username, password)));
restTemplate.setRequestFactory(requestFactory);
}
public void exec() {
System.out.println("restTemplate :::::::::::::::::: " + restTemplate);
String response = restTemplate.getForObject(URL, String.class);
System.out.println("Response:::::::::::::: " + response);
}
}
import java.net.HttpURLConnection;
import sun.misc.BASE64Encoder;
public class BasicSecureSimpleClientHttpRequestFactory extends
SecureSimpleClientHttpRequestFactory {
public BasicSecureSimpleClientHttpRequestFactory() {
}
protected void prepareSecureConnection(HttpURLConnection connection) {
if (credentialsProvider == null) {
return;
}
Credentials credentials = credentialsProvider.getCredentials(null);
String token = credentials.getUsername() + ":"
+ credentials.getPassword();
BASE64Encoder enc = new sun.misc.BASE64Encoder();
String encodedAuthorization = enc.encode(token.getBytes());
connection.setRequestProperty("Authorization", "Basic "
+ encodedAuthorization);
}
}
import java.io.IOException;
import java.net.HttpURLConnection;
import java.net.URI;
import org.springframework.http.HttpMethod;
import org.springframework.http.client.ClientHttpRequest;
import org.springframework.http.client.SimpleClientHttpRequestFactory;
abstract public class SecureSimpleClientHttpRequestFactory extends
SimpleClientHttpRequestFactory {
protected CredentialsProvider credentialsProvider;
public SecureSimpleClientHttpRequestFactory() {
}
public CredentialsProvider getCredentialsProvider() {
return credentialsProvider;
}
public void setCredentialsProvider(CredentialsProvider credentialsProvider) {
this.credentialsProvider = credentialsProvider;
}
@Override
public ClientHttpRequest createRequest(URI uri, HttpMethod httpMethod)
throws IOException {
HttpURLConnection connection = openConnection(uri.toURL(), null);
prepareConnection(connection, httpMethod.name());
prepareSecureConnection(connection);
return new SecureSimpleClientHttpRequest(connection);
}
abstract protected void prepareSecureConnection(HttpURLConnection connection);
}
import java.io.IOException;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URI;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpMethod;
import org.springframework.http.client.ClientHttpRequest;
import org.springframework.http.client.ClientHttpResponse;
public class SecureSimpleClientHttpRequest implements ClientHttpRequest {
public SecureSimpleClientHttpRequest(HttpURLConnection connection) {
// TODO Auto-generated constructor stub
}
@Override
public HttpMethod getMethod() {
// TODO Auto-generated method stub
return null;
}
@Override
public URI getURI() {
// TODO Auto-generated method stub
return null;
}
@Override
public HttpHeaders getHeaders() {
// TODO Auto-generated method stub
return null;
}
@Override
public OutputStream getBody() throws IOException {
// TODO Auto-generated method stub
return null;
}
@Override
public ClientHttpResponse execute() throws IOException {
// TODO Auto-generated method stub
return null;
}
}
public class SimpleCredentialsProvider implements CredentialsProvider {
private Credentials credentials;
public SimpleCredentialsProvider(Credentials credentials) {
super();
this.credentials = credentials;
}
@Override
public Credentials getCredentials(String str) {
return credentials;
}
}
public interface CredentialsProvider {
public Credentials getCredentials(String str);
}
public class Credentials {
private String username;
private String password;
public Credentials(String username, String password) {
super();
this.username = username;
this.password = password;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
CredentialsProvider.java
import org.springframework.web.client.RestTemplate;
public class RestClient {
RestTemplate restTemplate = new RestTemplate();
static final String URL = "http://www.assembla.com/spaces/my_spaces";
static final String username = "aaaaa";
static final String password = "aaaaa";
public RestClient() {
BasicSecureSimpleClientHttpRequestFactory requestFactory = new BasicSecureSimpleClientHttpRequestFactory();
requestFactory.setCredentialsProvider(new SimpleCredentialsProvider(
new Credentials(username, password)));
restTemplate.setRequestFactory(requestFactory);
}
public void exec() {
System.out.println("restTemplate :::::::::::::::::: " + restTemplate);
String response = restTemplate.getForObject(URL, String.class);
System.out.println("Response:::::::::::::: " + response);
}
}
import java.net.HttpURLConnection;
import sun.misc.BASE64Encoder;
public class BasicSecureSimpleClientHttpRequestFactory extends
SecureSimpleClientHttpRequestFactory {
public BasicSecureSimpleClientHttpRequestFactory() {
}
protected void prepareSecureConnection(HttpURLConnection connection) {
if (credentialsProvider == null) {
return;
}
Credentials credentials = credentialsProvider.getCredentials(null);
String token = credentials.getUsername() + ":"
+ credentials.getPassword();
BASE64Encoder enc = new sun.misc.BASE64Encoder();
String encodedAuthorization = enc.encode(token.getBytes());
connection.setRequestProperty("Authorization", "Basic "
+ encodedAuthorization);
}
}
import java.io.IOException;
import java.net.HttpURLConnection;
import java.net.URI;
import org.springframework.http.HttpMethod;
import org.springframework.http.client.ClientHttpRequest;
import org.springframework.http.client.SimpleClientHttpRequestFactory;
abstract public class SecureSimpleClientHttpRequestFactory extends
SimpleClientHttpRequestFactory {
protected CredentialsProvider credentialsProvider;
public SecureSimpleClientHttpRequestFactory() {
}
public CredentialsProvider getCredentialsProvider() {
return credentialsProvider;
}
public void setCredentialsProvider(CredentialsProvider credentialsProvider) {
this.credentialsProvider = credentialsProvider;
}
@Override
public ClientHttpRequest createRequest(URI uri, HttpMethod httpMethod)
throws IOException {
HttpURLConnection connection = openConnection(uri.toURL(), null);
prepareConnection(connection, httpMethod.name());
prepareSecureConnection(connection);
return new SecureSimpleClientHttpRequest(connection);
}
abstract protected void prepareSecureConnection(HttpURLConnection connection);
}
import java.io.IOException;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URI;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpMethod;
import org.springframework.http.client.ClientHttpRequest;
import org.springframework.http.client.ClientHttpResponse;
public class SecureSimpleClientHttpRequest implements ClientHttpRequest {
public SecureSimpleClientHttpRequest(HttpURLConnection connection) {
// TODO Auto-generated constructor stub
}
@Override
public HttpMethod getMethod() {
// TODO Auto-generated method stub
return null;
}
@Override
public URI getURI() {
// TODO Auto-generated method stub
return null;
}
@Override
public HttpHeaders getHeaders() {
// TODO Auto-generated method stub
return null;
}
@Override
public OutputStream getBody() throws IOException {
// TODO Auto-generated method stub
return null;
}
@Override
public ClientHttpResponse execute() throws IOException {
// TODO Auto-generated method stub
return null;
}
}
public class SimpleCredentialsProvider implements CredentialsProvider {
private Credentials credentials;
public SimpleCredentialsProvider(Credentials credentials) {
super();
this.credentials = credentials;
}
@Override
public Credentials getCredentials(String str) {
return credentials;
}
}
public interface CredentialsProvider {
public Credentials getCredentials(String str);
}
public class Credentials {
private String username;
private String password;
public Credentials(String username, String password) {
super();
this.username = username;
this.password = password;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
Credentials.java
import org.springframework.web.client.RestTemplate;
public class RestClient {
RestTemplate restTemplate = new RestTemplate();
static final String URL = "http://www.assembla.com/spaces/my_spaces";
static final String username = "aaaaa";
static final String password = "aaaaa";
public RestClient() {
BasicSecureSimpleClientHttpRequestFactory requestFactory = new BasicSecureSimpleClientHttpRequestFactory();
requestFactory.setCredentialsProvider(new SimpleCredentialsProvider(
new Credentials(username, password)));
restTemplate.setRequestFactory(requestFactory);
}
public void exec() {
System.out.println("restTemplate :::::::::::::::::: " + restTemplate);
String response = restTemplate.getForObject(URL, String.class);
System.out.println("Response:::::::::::::: " + response);
}
}
import java.net.HttpURLConnection;
import sun.misc.BASE64Encoder;
public class BasicSecureSimpleClientHttpRequestFactory extends
SecureSimpleClientHttpRequestFactory {
public BasicSecureSimpleClientHttpRequestFactory() {
}
protected void prepareSecureConnection(HttpURLConnection connection) {
if (credentialsProvider == null) {
return;
}
Credentials credentials = credentialsProvider.getCredentials(null);
String token = credentials.getUsername() + ":"
+ credentials.getPassword();
BASE64Encoder enc = new sun.misc.BASE64Encoder();
String encodedAuthorization = enc.encode(token.getBytes());
connection.setRequestProperty("Authorization", "Basic "
+ encodedAuthorization);
}
}
import java.io.IOException;
import java.net.HttpURLConnection;
import java.net.URI;
import org.springframework.http.HttpMethod;
import org.springframework.http.client.ClientHttpRequest;
import org.springframework.http.client.SimpleClientHttpRequestFactory;
abstract public class SecureSimpleClientHttpRequestFactory extends
SimpleClientHttpRequestFactory {
protected CredentialsProvider credentialsProvider;
public SecureSimpleClientHttpRequestFactory() {
}
public CredentialsProvider getCredentialsProvider() {
return credentialsProvider;
}
public void setCredentialsProvider(CredentialsProvider credentialsProvider) {
this.credentialsProvider = credentialsProvider;
}
@Override
public ClientHttpRequest createRequest(URI uri, HttpMethod httpMethod)
throws IOException {
HttpURLConnection connection = openConnection(uri.toURL(), null);
prepareConnection(connection, httpMethod.name());
prepareSecureConnection(connection);
return new SecureSimpleClientHttpRequest(connection);
}
abstract protected void prepareSecureConnection(HttpURLConnection connection);
}
import java.io.IOException;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URI;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpMethod;
import org.springframework.http.client.ClientHttpRequest;
import org.springframework.http.client.ClientHttpResponse;
public class SecureSimpleClientHttpRequest implements ClientHttpRequest {
public SecureSimpleClientHttpRequest(HttpURLConnection connection) {
// TODO Auto-generated constructor stub
}
@Override
public HttpMethod getMethod() {
// TODO Auto-generated method stub
return null;
}
@Override
public URI getURI() {
// TODO Auto-generated method stub
return null;
}
@Override
public HttpHeaders getHeaders() {
// TODO Auto-generated method stub
return null;
}
@Override
public OutputStream getBody() throws IOException {
// TODO Auto-generated method stub
return null;
}
@Override
public ClientHttpResponse execute() throws IOException {
// TODO Auto-generated method stub
return null;
}
}
public class SimpleCredentialsProvider implements CredentialsProvider {
private Credentials credentials;
public SimpleCredentialsProvider(Credentials credentials) {
super();
this.credentials = credentials;
}
@Override
public Credentials getCredentials(String str) {
return credentials;
}
}
public interface CredentialsProvider {
public Credentials getCredentials(String str);
}
public class Credentials {
private String username;
private String password;
public Credentials(String username, String password) {
super();
this.username = username;
this.password = password;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
我遇到以下错误:
2012年10月16日12:56:04 PM org.apache.catalina.core.StandardWrapperValve
为Servlet spring引发异常调用SEVERE:Servlet.service()
位于的java.lang.NullPointerException
org.springframework.web.client.RestTemplate$AcceptHeaderRequestCallback.doWithRequest(RestTemplate.java:530)
在
org.springframework.web.client.restemplate.doExecute(restemplate.java:444)
在
org.springframework.web.client.restemplate.execute(restemplate.java:409)
在
org.springframework.web.client.restemplate.getForObject(restemplate.java:207)
一种方法是,如果您已经在使用spring MVC,将其与spring Security结合使用: 由于它以各种方式支持基本身份验证: 另外,请阅读本文,了解如何将其与REST结合使用:
我试图通过以下URL“”提供帮助,但没有成功。