001
014
015 package com.liferay.portal.kernel.servlet;
016
017 import java.security.Principal;
018
019 import javax.servlet.http.HttpServletRequest;
020 import javax.servlet.http.HttpServletRequestWrapper;
021
022
025 public class ProtectedServletRequest extends HttpServletRequestWrapper {
026
027 public ProtectedServletRequest(
028 HttpServletRequest request, String remoteUser) {
029
030 this(request, remoteUser, null);
031 }
032
033 public ProtectedServletRequest(
034 HttpServletRequest request, String remoteUser, String authType) {
035
036 super(request);
037
038 if (request instanceof ProtectedServletRequest) {
039 ProtectedServletRequest parentRequest =
040 (ProtectedServletRequest)request;
041
042 setRequest(parentRequest.getRequest());
043 }
044
045 _remoteUser = remoteUser;
046
047 if (remoteUser != null) {
048 _userPrincipal = new ProtectedPrincipal(remoteUser);
049 }
050 else {
051 _userPrincipal = null;
052 }
053
054 _authType = authType;
055 }
056
057 @Override
058 public String getAuthType() {
059 if (_authType == null) {
060 return super.getAuthType();
061 }
062
063 if (_authType.equals(HttpServletRequest.BASIC_AUTH)) {
064 return HttpServletRequest.BASIC_AUTH;
065 }
066 else if (_authType.equals(HttpServletRequest.CLIENT_CERT_AUTH)) {
067 return HttpServletRequest.CLIENT_CERT_AUTH;
068 }
069 else if (_authType.equals(HttpServletRequest.DIGEST_AUTH)) {
070 return HttpServletRequest.DIGEST_AUTH;
071 }
072 else if (_authType.equals(HttpServletRequest.FORM_AUTH)) {
073 return HttpServletRequest.FORM_AUTH;
074 }
075
076 return _authType;
077 }
078
079 @Override
080 public String getRemoteUser() {
081 if (_remoteUser != null) {
082 return _remoteUser;
083 }
084 else {
085 return super.getRemoteUser();
086 }
087 }
088
089 @Override
090 public Principal getUserPrincipal() {
091 if (_userPrincipal != null) {
092 return _userPrincipal;
093 }
094 else {
095 return super.getUserPrincipal();
096 }
097 }
098
099 private String _authType;
100 private final String _remoteUser;
101 private final Principal _userPrincipal;
102
103 }