001
014
015 package com.liferay.portal.spring.remoting;
016
017 import com.liferay.portal.kernel.exception.PwdEncryptorException;
018 import com.liferay.portal.kernel.security.pwd.PasswordEncryptorUtil;
019 import com.liferay.portal.kernel.util.GetterUtil;
020 import com.liferay.portal.kernel.util.StringPool;
021
022 import java.io.IOException;
023
024 import java.net.HttpURLConnection;
025
026 import org.apache.commons.codec.binary.Base64;
027
028 import org.springframework.remoting.httpinvoker.SimpleHttpInvokerRequestExecutor;
029
030
038 public class AuthenticatingHttpInvokerRequestExecutor
039 extends SimpleHttpInvokerRequestExecutor {
040
041 public String getPassword() {
042 return _password;
043 }
044
045 public long getUserId() {
046 return _userId;
047 }
048
049 public void setPassword(String password) throws PwdEncryptorException {
050 _password = PasswordEncryptorUtil.encrypt(password);
051 }
052
053 public void setUserId(long userId) {
054 _userId = userId;
055 }
056
057
062 @Override
063 protected void prepareConnection(HttpURLConnection con, int contentLength)
064 throws IOException {
065
066 super.prepareConnection(con, contentLength);
067
068 if (getUserId() > 0) {
069 String password = GetterUtil.getString(getPassword());
070
071 String base64 = getUserId() + StringPool.COLON + password;
072
073 con.setRequestProperty(
074 "Authorization",
075 "Basic " + new String(Base64.encodeBase64(base64.getBytes())));
076 }
077 }
078
079 private String _password;
080 private long _userId;
081
082 }