Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/master' into gui-devel
Browse files Browse the repository at this point in the history
  • Loading branch information
1azyman committed Jul 3, 2014
2 parents 10ec2ac + a82a3ed commit c2882c9
Show file tree
Hide file tree
Showing 9 changed files with 226 additions and 209 deletions.

Large diffs are not rendered by default.

Expand Up @@ -22,3 +22,9 @@ deleteAllDialog.label.org=Org. Units
deleteAllDialog.label.shadow.account=Account shadows
deleteAllDialog.label.shadow.role=Role shadows
deleteAllDialog.label.shadow.org=Org. unit shadows
deleteAllDialog.label.usersDelete=Users to delete: {0} (User 'Administrator' will not be deleted)
deleteAllDialog.label.orgUnitsDelete=Org. units to delete: {0}
deleteAllDialog.label.accountShadowsDelete=Account shadows to delete: {0}
deleteAllDialog.label.orgShadowsDelete=Org. unit shadows to delete: {0}
deleteAllDialog.label.roleShadowsDelete=Role shadows to delete: {0}
deleteAllDialog.label.totalToDelete=Total objects to delete: {0}
Expand Up @@ -30,11 +30,18 @@ public class DeleteAllDto implements Serializable{
public static final String F_ORG_SHADOW = "deleteOrgShadow";
public static final String F_ROLE_SHADOW = "deleteRoleShadow";

private Boolean deleteUsers = false;
private Boolean deleteOrgs = false;
private Boolean deleteAccountShadow = false;
private Boolean deleteRoleShadow = false;
private Boolean deleteOrgShadow = false;
private boolean deleteUsers = false;
private boolean deleteOrgs = false;
private boolean deleteAccountShadow = false;
private boolean deleteRoleShadow = false;
private boolean deleteOrgShadow = false;

private int objectsToDelete = 0;
private int accountShadowTypeCount = 0;
private int orgUnitCount = 0;
private int userCount = 0;
private int orgShadowCount = 0;
private int roleShadowCount = 0;

private Map<String, String> resourceFocusMap = new HashMap<>();

Expand All @@ -46,43 +53,91 @@ public void setResourceFocusMap(Map<String, String> resourceFocusMap) {
this.resourceFocusMap = resourceFocusMap;
}

public Boolean getDeleteUsers() {
public boolean getDeleteUsers() {
return deleteUsers;
}

public void setDeleteUsers(Boolean deleteUsers) {
public void setDeleteUsers(boolean deleteUsers) {
this.deleteUsers = deleteUsers;
}

public Boolean getDeleteOrgs() {
public boolean getDeleteOrgs() {
return deleteOrgs;
}

public void setDeleteOrgs(Boolean deleteOrgs) {
public void setDeleteOrgs(boolean deleteOrgs) {
this.deleteOrgs = deleteOrgs;
}

public Boolean getDeleteAccountShadow() {
public boolean getDeleteAccountShadow() {
return deleteAccountShadow;
}

public void setDeleteAccountShadow(Boolean deleteAccountShadow) {
public void setDeleteAccountShadow(boolean deleteAccountShadow) {
this.deleteAccountShadow = deleteAccountShadow;
}

public Boolean getDeleteRoleShadow() {
public boolean getDeleteRoleShadow() {
return deleteRoleShadow;
}

public void setDeleteRoleShadow(Boolean deleteRoleShadow) {
public void setDeleteRoleShadow(boolean deleteRoleShadow) {
this.deleteRoleShadow = deleteRoleShadow;
}

public Boolean getDeleteOrgShadow() {
public boolean getDeleteOrgShadow() {
return deleteOrgShadow;
}

public void setDeleteOrgShadow(Boolean deleteOrgShadow) {
public void setDeleteOrgShadow(boolean deleteOrgShadow) {
this.deleteOrgShadow = deleteOrgShadow;
}

public int getObjectsToDelete() {
return objectsToDelete;
}

public void setObjectsToDelete(int objectsToDelete) {
this.objectsToDelete = objectsToDelete;
}

public int getAccountShadowTypeCount() {
return accountShadowTypeCount;
}

public void setAccountShadowTypeCount(int accountShadowTypeCount) {
this.accountShadowTypeCount = accountShadowTypeCount;
}

public int getOrgUnitCount() {
return orgUnitCount;
}

public void setOrgUnitCount(int orgUnitCount) {
this.orgUnitCount = orgUnitCount;
}

public int getUserCount() {
return userCount;
}

public void setUserCount(int userCount) {
this.userCount = userCount;
}

public int getOrgShadowCount() {
return orgShadowCount;
}

public void setOrgShadowCount(int orgShadowCount) {
this.orgShadowCount = orgShadowCount;
}

public int getRoleShadowCount() {
return roleShadowCount;
}

public void setRoleShadowCount(int roleShadowCount) {
this.roleShadowCount = roleShadowCount;
}
}
Expand Up @@ -17,8 +17,6 @@
package com.evolveum.midpoint.web.page.admin.configuration;

import com.evolveum.midpoint.model.api.ModelExecuteOptions;
import com.evolveum.midpoint.model.api.ModelService;
import com.evolveum.midpoint.prism.PrismContext;
import com.evolveum.midpoint.prism.PrismObject;
import com.evolveum.midpoint.prism.delta.ObjectDelta;
import com.evolveum.midpoint.prism.match.PolyStringNormMatchingRule;
Expand Down Expand Up @@ -46,6 +44,7 @@
import com.evolveum.midpoint.web.component.data.column.LinkColumn;
import com.evolveum.midpoint.web.component.dialog.ConfirmationDialog;
import com.evolveum.midpoint.web.component.dialog.DeleteAllDialog;
import com.evolveum.midpoint.web.component.dialog.DeleteAllDto;
import com.evolveum.midpoint.web.component.menu.cog.InlineMenuItem;
import com.evolveum.midpoint.web.component.util.LoadableModel;
import com.evolveum.midpoint.web.page.PageBase;
Expand Down Expand Up @@ -144,21 +143,6 @@ private void initLayout() {
DeleteAllDialog deleteAllDialog = new DeleteAllDialog(ID_DELETE_ALL_DIALOG,
createStringResource("pageDebugList.dialog.title.deleteAll")){

@Override
public Task createSimpleTask(String operation){
return PageDebugList.this.createSimpleTask(operation);
}

@Override
public ModelService getModelService(){
return PageDebugList.this.getModelService();
}

@Override
public PrismContext getPrismContext(){
return PageDebugList.this.getPrismContext();
}

@Override
public void yesPerformed(AjaxRequestTarget target) {
close(target);
Expand All @@ -171,19 +155,21 @@ public void yesPerformed(AjaxRequestTarget target) {
OperationResult result = new OperationResult(OPERATION_LAXATIVE_DELETE);

objectsDeleted = 0;
if(getModel().getObject().getDeleteUsers()){
DeleteAllDto dto = getModel().getObject();

if(dto.getDeleteUsers()){
deleteAllUsers(task, result, options);
}
if(getModel().getObject().getDeleteOrgs()){
if(dto.getDeleteOrgs()){
deleteAllOrgUnits(task, result, options);
}
if(getModel().getObject().getDeleteAccountShadow()){
if(dto.getDeleteAccountShadow()){
deleteAllAccountShadows(task, result, options);
}
if(getModel().getObject().getDeleteOrgShadow()){
if(dto.getDeleteOrgShadow()){
deleteAllNonAccountShadows(task, result, options, OrgType.COMPLEX_TYPE);
}
if(getModel().getObject().getDeleteRoleShadow()){
if(dto.getDeleteRoleShadow()){
deleteAllNonAccountShadows(task, result, options, RoleType.COMPLEX_TYPE);
}

Expand Down
Expand Up @@ -43,10 +43,4 @@ pageDebugList.message.countSearchProblem=Couldn't perform search operation on us
pageDebugList.message.singleUserDeleteProblem=Couldn't delete user
pageDebugList.message.singleOrgDeleteProblem=Couldn't delete org. unit
pageDebugList.message.singleShadowDeleteProblem=Couldn't delete shadow
pageDebugList.message.laxativeProblem=Drop all identities operation has not performed successfully
pageDebugList.label.usersDelete=Users to delete: {0} (User 'Administrator' will not be deleted)
pageDebugList.label.orgUnitsDelete=Org. units to delete: {0}
pageDebugList.label.accountShadowsDelete=Account shadows to delete: {0}
pageDebugList.label.orgShadowsDelete=Org. unit shadows to delete: {0}
pageDebugList.label.roleShadowsDelete=Role shadows to delete: {0}
pageDebugList.label.totalToDelete=Total objects to delete: {0}
pageDebugList.message.laxativeProblem=Drop all identities operation has not performed successfully
Expand Up @@ -30,6 +30,8 @@
import org.apache.commons.cli.Options;
import org.apache.commons.cli.ParseException;
import org.apache.cxf.frontend.ClientProxy;
import org.apache.cxf.interceptor.LoggingInInterceptor;
import org.apache.cxf.interceptor.LoggingOutInterceptor;
import org.apache.cxf.ws.security.wss4j.WSS4JOutInterceptor;
import org.apache.ws.security.WSConstants;
import org.apache.ws.security.handler.WSHandlerConstants;
Expand Down Expand Up @@ -59,7 +61,18 @@ public void setVerbose(boolean verbose) {
protected abstract String getDefaultUsername();

protected String getPasswordType() {
return WSConstants.PW_DIGEST;
if (commandLine.hasOption('P')) {
String optionValue = commandLine.getOptionValue('P');
if ("text".equals(optionValue)) {
return WSConstants.PW_TEXT;
} else if ("digest".equals(optionValue)) {
return WSConstants.PW_DIGEST;
} else {
throw new IllegalArgumentException("Unknown password type "+optionValue);
}
} else {
return WSConstants.PW_TEXT;
}
}

protected abstract String getDefaultPassword();
Expand All @@ -83,8 +96,10 @@ public void main(String[] args) {
protected void init(String[] args) throws ParseException {
options.addOption("u", "user", true, "Username");
options.addOption("p", "password", true, "Password");
options.addOption("P", "password-type", true, "Password type (text or digest)");
options.addOption("e", "endpoint", true, "Endpoint URL");
options.addOption("v", "verbose", false, "Verbose mode");
options.addOption("m", "messages", false, "Log SOAP messages");
options.addOption("h", "help", false, "Usage help");
extendOptions(options);
parseCommandLine(args);
Expand Down Expand Up @@ -157,9 +172,11 @@ protected P createPort() throws Exception {

WSS4JOutInterceptor wssOut = new WSS4JOutInterceptor(wssProps);
cxfEndpoint.getOutInterceptors().add(wssOut);
// enable the following to get client-side logging of outgoing requests and incoming responses
//cxfEndpoint.getOutInterceptors().add(new LoggingOutInterceptor());
//cxfEndpoint.getInInterceptors().add(new LoggingInInterceptor());

if (commandLine.hasOption('m')) {
cxfEndpoint.getInInterceptors().add(new LoggingInInterceptor());
cxfEndpoint.getOutInterceptors().add(new LoggingOutInterceptor());
}

return modelPort;
}
Expand Down
@@ -0,0 +1 @@
org.apache.cxf.common.logging.Slf4jLogger
Expand Up @@ -26,6 +26,8 @@
import com.evolveum.midpoint.security.api.MidPointPrincipal;
import com.evolveum.midpoint.security.api.UserProfileService;
import com.evolveum.midpoint.util.exception.ObjectNotFoundException;
import com.evolveum.midpoint.util.logging.Trace;
import com.evolveum.midpoint.util.logging.TraceManager;
import com.evolveum.midpoint.xml.ns._public.common.common_3.CredentialsType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.PasswordType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.UserType;
Expand All @@ -36,6 +38,8 @@
* @author Igor Farinic
*/
public class PasswordCallback implements CallbackHandler {

private static final Trace LOGGER = TraceManager.getTrace(PasswordCallback.class);

private UserProfileService userDetailsService;
private Protector protector;
Expand All @@ -46,8 +50,12 @@ public PasswordCallback(UserProfileService userDetailsService, Protector protect
}

public void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException {
LOGGER.trace("Invoked PasswordCallback with {} callbacks: {}", callbacks.length, callbacks);
WSPasswordCallback pc = (WSPasswordCallback) callbacks[0];

String wssPasswordType = pc.getType();
LOGGER.trace("Password type: {}", wssPasswordType);

MidPointPrincipal user;
try {
user = userDetailsService.getPrincipal(pc.getIdentifier());
Expand Down
3 changes: 1 addition & 2 deletions model/model-impl/src/main/resources/ctx-model.xml
Expand Up @@ -407,14 +407,13 @@
<constructor-arg>
<map>
<entry key="action" value="UsernameToken"/>
<entry key="passwordType" value="PasswordDigest"/>
<entry key="passwordCallbackRef">
<ref bean="passwordCallback"/>
</entry>
</map>
</constructor-arg>
</bean>

<bean id="springAuthenticationInjector" class="com.evolveum.midpoint.model.impl.security.SpringAuthenticationInjectorInterceptor">
<constructor-arg name="userDetailsService" ref="userDetailsService"/>
<constructor-arg name="securityEnforcer" ref="securityEnforcer"/>
Expand Down

0 comments on commit c2882c9

Please sign in to comment.