Skip to content

Commit ea2f4f1

Browse files
committed
config authentication improvements
1 parent f3edfc0 commit ea2f4f1

File tree

10 files changed

+468
-306
lines changed

10 files changed

+468
-306
lines changed

server/src/main/java/password/pwm/http/PwmURL.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
import java.util.Iterator;
3535
import java.util.List;
3636
import java.util.Map;
37+
import java.util.Objects;
3738
import java.util.regex.Pattern;
3839

3940
public class PwmURL
@@ -48,7 +49,8 @@ public PwmURL(
4849
final String contextPath
4950
)
5051
{
51-
this.uri = uri;
52+
Objects.requireNonNull( uri );
53+
this.uri = uri.normalize();
5254
this.contextPath = contextPath;
5355
}
5456

server/src/main/java/password/pwm/http/filter/ConfigAccessFilter.java

Lines changed: 10 additions & 296 deletions
Large diffs are not rendered by default.

server/src/main/java/password/pwm/http/servlet/PwmServletDefinition.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@
4848
import password.pwm.http.servlet.configguide.ConfigGuideServlet;
4949
import password.pwm.http.servlet.configmanager.ConfigManagerCertificatesServlet;
5050
import password.pwm.http.servlet.configmanager.ConfigManagerLocalDBServlet;
51+
import password.pwm.http.servlet.configmanager.ConfigManagerLoginServlet;
5152
import password.pwm.http.servlet.configmanager.ConfigManagerServlet;
5253
import password.pwm.http.servlet.configmanager.ConfigManagerWordlistServlet;
5354
import password.pwm.http.servlet.newuser.NewUserServlet;
@@ -90,6 +91,7 @@ public enum PwmServletDefinition
9091
ConfigGuide( ConfigGuideServlet.class, ConfigGuideBean.class ),
9192
ConfigEditor( ConfigEditorServlet.class, null ),
9293
ConfigManager( ConfigManagerServlet.class, ConfigManagerBean.class ),
94+
ConfigManager_Login( ConfigManagerLoginServlet.class, ConfigManagerBean.class ),
9395
ConfigManager_Wordlists( ConfigManagerWordlistServlet.class, ConfigManagerBean.class ),
9496
ConfigManager_LocalDB( ConfigManagerLocalDBServlet.class, ConfigManagerBean.class ),
9597
ConfigManager_Certificates( ConfigManagerCertificatesServlet.class, ConfigManagerBean.class ),

server/src/main/java/password/pwm/http/servlet/configeditor/ConfigEditorServlet.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -72,12 +72,12 @@
7272
import password.pwm.i18n.PwmLocaleBundle;
7373
import password.pwm.ldap.LdapBrowser;
7474
import password.pwm.util.PasswordData;
75-
import password.pwm.util.password.RandomPasswordGenerator;
7675
import password.pwm.util.java.JsonUtil;
7776
import password.pwm.util.java.StringUtil;
7877
import password.pwm.util.java.TimeDuration;
7978
import password.pwm.util.logging.PwmLogger;
8079
import password.pwm.util.macro.MacroMachine;
80+
import password.pwm.util.password.RandomPasswordGenerator;
8181
import password.pwm.util.queue.SmsQueueManager;
8282
import password.pwm.util.secure.HttpsServerCertificateManager;
8383
import password.pwm.ws.server.RestResultBean;
@@ -164,8 +164,11 @@ public Class<? extends ProcessAction> getProcessActionsClass( )
164164
}
165165

166166
@Override
167-
public ProcessStatus preProcessCheck( final PwmRequest pwmRequest ) throws PwmUnrecoverableException, IOException, ServletException
167+
public ProcessStatus preProcessCheck( final PwmRequest pwmRequest )
168+
throws PwmUnrecoverableException, IOException, ServletException
168169
{
170+
ConfigManagerServlet.verifyConfigAccess( pwmRequest );
171+
169172
final ConfigManagerBean configManagerBean = getBean( pwmRequest );
170173

171174
if ( configManagerBean.getStoredConfiguration() == null )

server/src/main/java/password/pwm/http/servlet/configmanager/ConfigManagerCertificatesServlet.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,8 @@ protected ConfigManagerCertificateAction readProcessAction( final PwmRequest req
9898
protected void processAction( final PwmRequest pwmRequest )
9999
throws ServletException, IOException, ChaiUnavailableException, PwmUnrecoverableException
100100
{
101+
ConfigManagerServlet.verifyConfigAccess( pwmRequest );
102+
101103
final ConfigManagerCertificateAction action = readProcessAction( pwmRequest );
102104
final ArrayList<CertificateDebugDataItem> certificateDebugDataItems = new ArrayList<>( makeCertificateDebugData( pwmRequest.getConfig() ) );
103105

server/src/main/java/password/pwm/http/servlet/configmanager/ConfigManagerLocalDBServlet.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@
2020

2121
package password.pwm.http.servlet.configmanager;
2222

23-
import com.novell.ldapchai.exception.ChaiUnavailableException;
2423
import org.apache.commons.fileupload.servlet.ServletFileUpload;
2524
import password.pwm.AppProperty;
2625
import password.pwm.PwmApplication;
@@ -103,8 +102,9 @@ protected ConfigManagerAction readProcessAction( final PwmRequest request )
103102
}
104103

105104
protected void processAction( final PwmRequest pwmRequest )
106-
throws ServletException, IOException, ChaiUnavailableException, PwmUnrecoverableException
105+
throws ServletException, IOException, PwmUnrecoverableException
107106
{
107+
ConfigManagerServlet.verifyConfigAccess( pwmRequest );
108108

109109
final ConfigManagerAction processAction = readProcessAction( pwmRequest );
110110
if ( processAction != null )

0 commit comments

Comments
 (0)