use of org.zaproxy.zap.model.Context in project zaproxy by zaproxy.
the class ExtensionSessionManagementUnitTest method shouldImportContextWithHttpSessionMgmtType.
@Test
void shouldImportContextWithHttpSessionMgmtType() throws ConfigurationException {
// Given
Context context = mock(Context.class);
Configuration config = new ZapXmlConfiguration();
int sessMgmtTypeId = 1;
config.addProperty(ExtensionSessionManagement.CONTEXT_CONFIG_SESSION_TYPE, sessMgmtTypeId);
// When
extSessMgmt.importContextData(context, config);
// Then
verify(context).setSessionManagementMethod(any(HttpAuthSessionManagementMethod.class));
}
use of org.zaproxy.zap.model.Context in project zaproxy by zaproxy.
the class ExtensionAuthorizationUnitTest method shouldImportContextWithNoAuthorizationDetectionMethod.
@Test
void shouldImportContextWithNoAuthorizationDetectionMethod() throws ConfigurationException {
// Given
Context context = mock(Context.class);
Configuration config = new ZapXmlConfiguration();
// When
extensionAuthorization.importContextData(context, config);
// Then
verify(context, times(0)).setAuthorizationDetectionMethod(any());
}
use of org.zaproxy.zap.model.Context in project zaproxy by zaproxy.
the class ExtensionForcedUserUnitTest method shouldImportContextWithNoForcedUser.
@Test
void shouldImportContextWithNoForcedUser() {
// Given
Context context = mock(Context.class);
Configuration config = new ZapXmlConfiguration();
// When
extensionForcedUser.importContextData(context, config);
// Then
verify(context, times(0)).getId();
}
use of org.zaproxy.zap.model.Context in project zaproxy by zaproxy.
the class ExtensionForcedUserUnitTest method shouldNotImportContextWithUnknownForcedUser.
@Test
void shouldNotImportContextWithUnknownForcedUser() {
// Given
given(extensionLoader.getExtension(ExtensionUserManagement.class)).willReturn(new ExtensionUserManagement());
Context context = mock(Context.class);
Configuration config = new ZapXmlConfiguration();
config.setProperty("context.forceduser", Integer.MIN_VALUE);
// When / Then
assertThrows(IllegalStateException.class, () -> extensionForcedUser.importContextData(context, config));
}
use of org.zaproxy.zap.model.Context in project zaproxy by zaproxy.
the class ManualAuthenticationMethodType method getSetCredentialsForUserApiAction.
@Override
public ApiDynamicActionImplementor getSetCredentialsForUserApiAction() {
return new ApiDynamicActionImplementor(ACTION_SET_CREDENTIALS, new String[] { PARAM_SESSION_NAME }, null) {
@Override
public void handleAction(JSONObject params) throws ApiException {
Context context = ApiUtils.getContextByParamId(params, UsersAPI.PARAM_CONTEXT_ID);
int userId = ApiUtils.getIntParam(params, UsersAPI.PARAM_USER_ID);
// Make sure the type of authentication method is compatible
if (!isTypeForMethod(context.getAuthenticationMethod())) {
throw new ApiException(ApiException.Type.ILLEGAL_PARAMETER, "User's credentials should match authentication method type of the context: " + context.getAuthenticationMethod().getType().getName());
}
// NOTE: no need to check if extension is loaded as this method
// is called only if
// the Users
// extension is loaded
ExtensionUserManagement extensionUserManagement = Control.getSingleton().getExtensionLoader().getExtension(ExtensionUserManagement.class);
User user = extensionUserManagement.getContextUserAuthManager(context.getId()).getUserById(userId);
if (user == null) {
throw new ApiException(Type.USER_NOT_FOUND, UsersAPI.PARAM_USER_ID);
}
String sessionName = ApiUtils.getNonEmptyStringParam(params, PARAM_SESSION_NAME);
// Get the matching session
ExtensionHttpSessions extensionHttpSessions = Control.getSingleton().getExtensionLoader().getExtension(ExtensionHttpSessions.class);
if (extensionHttpSessions == null) {
throw new ApiException(Type.NO_IMPLEMENTOR, "HttpSessions extension is not loaded.");
}
List<HttpSession> sessions = extensionHttpSessions.getHttpSessionsForContext(context);
HttpSession matchedSession = null;
for (HttpSession session : sessions) {
if (session.getName().equals(sessionName)) {
matchedSession = session;
break;
}
}
if (matchedSession == null) {
throw new ApiException(ApiException.Type.DOES_NOT_EXIST, PARAM_SESSION_NAME);
}
// Set the credentials
ManualAuthenticationCredentials credentials = createAuthenticationCredentials();
credentials.setSelectedSession(matchedSession);
user.setAuthenticationCredentials(credentials);
}
};
}
Aggregations