directory-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "RAMESH BABU NAKKA (JIRA)" <j...@apache.org>
Subject [jira] Commented: (DIRSERVER-1448) Unable to update User attributes
Date Tue, 19 Jan 2010 16:54:54 GMT

    [ https://issues.apache.org/jira/browse/DIRSERVER-1448?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12802330#action_12802330
] 

RAMESH BABU NAKKA commented on DIRSERVER-1448:
----------------------------------------------

Hi, 
We are doing the update of the user by the below code, we dont have an LDIF for the users
which we update during the running of  testng tests.
Please suggest us if you need any more information


public class UserDaoImpl implements WrappedUserDao {	

static Logger logger = LoggerFactory.getLogger(UserDaoImpl.class);

	@Autowired
	LdapTemplate ldapTemplate;
	@Autowired
	EnvironmentUtil envirnomentutil;
	@Autowired
	LDAPUtil ldaputil;
	

public void update(User info) {
		try{
			if(info!=null){
				 DistinguishedName dn = new DistinguishedName();
				 dn.addAll(new DistinguishedName("cn=users"));
				 dn.add("uid", "sampleUser112");	    	
				 DirContextAdapter  context = (DirContextAdapter) ldapTemplate.lookupContext(dn);
				 context.setUpdateMode(true);
				 mapToContext(info, context);	
			         ldapTemplate.modifyAttributes(dn,context.getModificationItems());
			}else{
				//TODO: Throw exception
				if(logger.isErrorEnabled()){
					logger.error("Update user failed, since user object is null");
				}	
			}
		}catch (Exception e) {
			// TODO: handle exception			
			if(logger.isErrorEnabled()){
				logger.error("Failed updating user : : " + e.getMessage());
			}
			e.printStackTrace();
		}
	}




protected void mapToContext (User user, DirContextAdapter context) {
		try{
			
			User oldUser = findByUserId(user.getUserId());
			
			if(oldUser==null){
				oldUser = new User();
			}
			
			//TODO: Externalize to property file.
			context.setAttributeValues(LDAPConstants.OBJECT_CLASS, new String[] {LDAPConstants.TOP,
LDAPConstants.PORTAL_USER});
			
			if(user!=null){
				
				if(ValidationUtil.isNotNullOrBlank(user.getUserId())){
					prepareContextFromUserObject(context, user.getUserId(), oldUser.getUserId(), UserAttributes.USER_ID.getLDAPAttributeName());
					prepareContextFromUserObject(context, user.getUserId(), oldUser.getUserId(), UserAttributes.CN.getLDAPAttributeName());
				}else{
					//@TODO throw exception for mandatory attributes			
				}
				
				if(ValidationUtil.isNotNullOrBlank(user.getLastName())){
					prepareContextFromUserObject(context, user.getLastName(), oldUser.getLastName(), UserAttributes.USER_LAST_NAME.getLDAPAttributeName());
				
				}else{
					//@TODO throw exception for mandatory attributes			
				}
				
				
				prepareContextFromUserObject(context, user.getFirstName(), oldUser.getFirstName(), UserAttributes.USER_FIRST_NAME.getLDAPAttributeName());
				
				prepareContextFromUserObject(context, user.getUserType(), oldUser.getUserType(), UserAttributes.USER_TYPE.getLDAPAttributeName());
				
				prepareContextFromUserObject(context, user.getPassword(), oldUser.getPassword(), UserAttributes.USER_PASSWORD.getLDAPAttributeName());
				
				.
				.
				.
				.
				.
				.
				.
				.
				.
}		
}.

These are the LDAP settings we use for 
local.ldap=APACHEDS
local.ldap.url=ldap://localhost:10389
local.ldap.base=dc=portal,dc=osc,dc=state,dc=ny,dc=us
local.ldap.basedn=uid=admin,ou=system
local.ldap.password=secret
local.ldap.userbase=cn=users
local.ldap.groupbase=cn=groups



> Unable to update User attributes 
> ---------------------------------
>
>                 Key: DIRSERVER-1448
>                 URL: https://issues.apache.org/jira/browse/DIRSERVER-1448
>             Project: Directory ApacheDS
>          Issue Type: Bug
>    Affects Versions: 1.5.5
>         Environment: Windows, Java Embedded Apache DS
>            Reporter: RAMESH BABU NAKKA
>            Priority: Blocker
>
> I am using the embedded APACHE DS API 1.5.5. 
> We are starting and stopping the DS through testng tests
> We are able to create partition, add users, find users,      but not able to update users
with any attribute (Single valued and Multi valued.)
> Initially we thought we are not able to updated for multi values attributes, but we are
UNABLE to update any user attribute.
> We get the below exception.
> java.lang.NullPointerException
> 	at org.apache.directory.server.core.collective.CollectiveAttributesSchemaChecker.checkModify(CollectiveAttributesSchemaChecker.java:89)
> 	at org.apache.directory.server.core.collective.CollectiveAttributeInterceptor.modify(CollectiveAttributeInterceptor.java:358)
> 	at org.apache.directory.server.core.interceptor.InterceptorChain$Entry$1.modify(InterceptorChain.java:1216)
> 	at org.apache.directory.server.core.subtree.SubentryInterceptor.modify(SubentryInterceptor.java:1104)
> 	at org.apache.directory.server.core.interceptor.InterceptorChain$Entry$1.modify(InterceptorChain.java:1216)
> 	at org.apache.directory.server.core.schema.SchemaInterceptor.modify(SchemaInterceptor.java:1551)
> 	at org.apache.directory.server.core.interceptor.InterceptorChain$Entry$1.modify(InterceptorChain.java:1216)
> 	at org.apache.directory.server.core.operational.OperationalAttributeInterceptor.modify(OperationalAttributeInterceptor.java:209)
> 	at org.apache.directory.server.core.interceptor.InterceptorChain$Entry$1.modify(InterceptorChain.java:1216)
> 	at org.apache.directory.server.core.changelog.ChangeLogInterceptor.modify(ChangeLogInterceptor.java:225)
> 	at org.apache.directory.server.core.interceptor.InterceptorChain$Entry$1.modify(InterceptorChain.java:1216)
> 	at org.apache.directory.server.core.exception.ExceptionInterceptor.modify(ExceptionInterceptor.java:367)
> 	at org.apache.directory.server.core.interceptor.InterceptorChain$Entry$1.modify(InterceptorChain.java:1216)
> 	at org.apache.directory.server.core.authz.DefaultAuthorizationInterceptor.modify(DefaultAuthorizationInterceptor.java:273)
> 	at org.apache.directory.server.core.interceptor.InterceptorChain$Entry$1.modify(InterceptorChain.java:1216)
> 	at org.apache.directory.server.core.authz.AciAuthorizationInterceptor.modify(AciAuthorizationInterceptor.java:565)
> 	at org.apache.directory.server.core.interceptor.InterceptorChain$Entry$1.modify(InterceptorChain.java:1216)
> 	at org.apache.directory.server.core.referral.ReferralInterceptor.modify(ReferralInterceptor.java:403)
> 	at org.apache.directory.server.core.interceptor.InterceptorChain$Entry$1.modify(InterceptorChain.java:1216)
> 	at org.apache.directory.server.core.authn.AuthenticationInterceptor.modify(AuthenticationInterceptor.java:336)
> 	at org.apache.directory.server.core.interceptor.InterceptorChain$Entry$1.modify(InterceptorChain.java:1216)
> 	at org.apache.directory.server.core.normalization.NormalizationInterceptor.modify(NormalizationInterceptor.java:146)
> 	at org.apache.directory.server.core.interceptor.InterceptorChain.modify(InterceptorChain.java:821)
> 	at org.apache.directory.server.core.DefaultOperationManager.modify(DefaultOperationManager.java:691)
> 	at org.apache.directory.server.core.DefaultCoreSession.modify(DefaultCoreSession.java:829)
> 	at org.apache.directory.server.core.DefaultCoreSession.modify(DefaultCoreSession.java:815)
> 	at org.apache.directory.server.ldap.handlers.ModifyHandler.handle(ModifyHandler.java:56)
> 	at org.apache.directory.server.ldap.handlers.ModifyHandler.handle(ModifyHandler.java:39)
> 	at org.apache.directory.server.ldap.handlers.LdapRequestHandler.handleMessage(LdapRequestHandler.java:176)
> 	at org.apache.directory.server.ldap.handlers.LdapRequestHandler.handleMessage(LdapRequestHandler.java:56)
> 	at org.apache.mina.handler.demux.DemuxingIoHandler.messageReceived(DemuxingIoHandler.java:232)
> 	at org.apache.directory.server.ldap.LdapProtocolHandler.messageReceived(LdapProtocolHandler.java:194)
> 	at org.apache.mina.core.filterchain.DefaultIoFilterChain$TailFilter.messageReceived(DefaultIoFilterChain.java:721)
> 	at org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:433)
> 	at org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1200(DefaultIoFilterChain.java:47)
> 	at org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:801)
> 	at org.apache.mina.core.filterchain.IoFilterEvent.fire(IoFilterEvent.java:71)
> 	at org.apache.mina.core.session.IoEvent.run(IoEvent.java:63)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message