Skip to content

Commit 08f943d

Browse files
author
Daan Hoogland
committed
sonarqube
1 parent bc42cd1 commit 08f943d

2 files changed

Lines changed: 40 additions & 29 deletions

File tree

plugins/user-authenticators/saml2/src/main/java/org/apache/cloudstack/saml/SAML2AuthManagerImpl.java

Lines changed: 29 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -455,29 +455,36 @@ public boolean isUserAuthorized(Long userId, String entityId) {
455455
@Override
456456
public boolean authorizeUser(Long userId, String entityId, boolean enable) {
457457
UserVO user = _userDao.getUser(userId);
458-
if (user != null) {
459-
if (enable) {
460-
if (user.getSource() != null && !User.Source.SAML2.equals(user.getSource()) && !User.Source.SAML2DISABLED.equals(user.getSource())) {
461-
userDetailsDao.addDetail(user.getId(), PRE_SAML_SOURCE_DETAIL_KEY, user.getSource().toString(), false);
462-
}
463-
user.setExternalEntity(entityId);
464-
user.setSource(User.Source.SAML2);
465-
} else {
466-
boolean enableLoginAfterSAMLDisable = SAML2AuthManager.EnableLoginAfterSAMLDisable.value();
467-
if (user.getSource().equals(User.Source.SAML2)) {
468-
if(enableLoginAfterSAMLDisable) {
469-
user.setSource(getPreSamlSource(user.getId()));
470-
} else {
471-
user.setSource(User.Source.SAML2DISABLED);
472-
}
473-
} else {
474-
return false;
475-
}
476-
}
477-
_userDao.update(user.getId(), user);
478-
return true;
458+
if (user == null) {
459+
return false;
479460
}
480-
return false;
461+
if (enable) {
462+
enableSAMLForUser(user, entityId);
463+
} else if (!disableSAMLForUser(user)) {
464+
return false;
465+
}
466+
_userDao.update(user.getId(), user);
467+
return true;
468+
}
469+
470+
private void enableSAMLForUser(UserVO user, String entityId) {
471+
if (user.getSource() != null && !User.Source.SAML2.equals(user.getSource()) && !User.Source.SAML2DISABLED.equals(user.getSource())) {
472+
userDetailsDao.addDetail(user.getId(), PRE_SAML_SOURCE_DETAIL_KEY, user.getSource().toString(), false);
473+
}
474+
user.setExternalEntity(entityId);
475+
user.setSource(User.Source.SAML2);
476+
}
477+
478+
private boolean disableSAMLForUser(UserVO user) {
479+
if (!user.getSource().equals(User.Source.SAML2)) {
480+
return false;
481+
}
482+
if (SAML2AuthManager.EnableLoginAfterSAMLDisable.value()) {
483+
user.setSource(getPreSamlSource(user.getId()));
484+
} else {
485+
user.setSource(User.Source.SAML2DISABLED);
486+
}
487+
return true;
481488
}
482489

483490
/**

plugins/user-authenticators/saml2/src/test/java/org/apache/cloudstack/SAML2AuthManagerImplTest.java

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,10 @@
1919

2020
package org.apache.cloudstack;
2121

22+
import static org.mockito.Mockito.never;
23+
import static org.mockito.Mockito.verify;
24+
import static org.mockito.Mockito.when;
25+
2226
import java.lang.reflect.Field;
2327
import java.lang.reflect.Method;
2428

@@ -132,11 +136,11 @@ public void testAuthorizeUserStoresPreSamlSourceOnEnable() {
132136
UserVO user = new UserVO(200L);
133137
user.setUsername("someuser");
134138
user.setSource(User.Source.LDAP);
135-
Mockito.when(userDao.getUser(Mockito.anyLong())).thenReturn(user);
139+
when(userDao.getUser(Mockito.anyLong())).thenReturn(user);
136140

137141
saml2AuthManager.authorizeUser(200L, "someID", true);
138142

139-
Mockito.verify(userDetailsDao).addDetail(200L, "PreSamlSource", "LDAP", false);
143+
verify(userDetailsDao).addDetail(200L, "PreSamlSource", "LDAP", false);
140144
assertEquals(User.Source.SAML2, user.getSource());
141145
}
142146

@@ -145,30 +149,30 @@ public void testAuthorizeUserDoesNotRestorePreSamlSourceWhenAlreadyAuthorized()
145149
UserVO user = new UserVO(200L);
146150
user.setUsername("someuser");
147151
user.setSource(User.Source.SAML2);
148-
Mockito.when(userDao.getUser(Mockito.anyLong())).thenReturn(user);
152+
when(userDao.getUser(Mockito.anyLong())).thenReturn(user);
149153

150154
saml2AuthManager.authorizeUser(200L, "someID", true);
151155

152-
Mockito.verify(userDetailsDao, Mockito.never()).addDetail(Mockito.anyLong(), Mockito.anyString(), Mockito.anyString(), Mockito.anyBoolean());
156+
verify(userDetailsDao, never()).addDetail(Mockito.anyLong(), Mockito.anyString(), Mockito.anyString(), Mockito.anyBoolean());
153157
}
154158

155159
@Test
156160
public void testGetPreSamlSourceRestoresStoredSource() throws Exception {
157-
Mockito.when(userDetailsDao.findDetail(200L, "PreSamlSource")).thenReturn(new UserDetailVO(200L, "PreSamlSource", "LDAP"));
161+
when(userDetailsDao.findDetail(200L, "PreSamlSource")).thenReturn(new UserDetailVO(200L, "PreSamlSource", "LDAP"));
158162

159163
assertEquals(User.Source.LDAP, invokeGetPreSamlSource(200L));
160164
}
161165

162166
@Test
163167
public void testGetPreSamlSourceDefaultsToUnknownWhenNothingStored() throws Exception {
164-
Mockito.when(userDetailsDao.findDetail(200L, "PreSamlSource")).thenReturn(null);
168+
when(userDetailsDao.findDetail(200L, "PreSamlSource")).thenReturn(null);
165169

166170
assertEquals(User.Source.UNKNOWN, invokeGetPreSamlSource(200L));
167171
}
168172

169173
@Test
170174
public void testGetPreSamlSourceDefaultsToUnknownOnGarbageValue() throws Exception {
171-
Mockito.when(userDetailsDao.findDetail(200L, "PreSamlSource")).thenReturn(new UserDetailVO(200L, "PreSamlSource", "not-a-real-source"));
175+
when(userDetailsDao.findDetail(200L, "PreSamlSource")).thenReturn(new UserDetailVO(200L, "PreSamlSource", "not-a-real-source"));
172176

173177
assertEquals(User.Source.UNKNOWN, invokeGetPreSamlSource(200L));
174178
}

0 commit comments

Comments
 (0)