+/*
+ * Copyright (C) 2010 Mathieu Baudier <mbaudier@argeo.org>
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
package org.argeo.security.ldap.nature;
import org.argeo.security.UserNature;
import org.springframework.ldap.core.DirContextOperations;
public class SimpleUserNatureMapper implements UserNatureMapper {
+ public String getName() {
+ return "simpleUser";
+ }
public UserNature mapUserInfoFromContext(DirContextOperations ctx) {
- SimpleUserNature basicUserInfo = new SimpleUserNature();
- basicUserInfo.setLastName(ctx.getStringAttribute("sn"));
- basicUserInfo.setFirstName(ctx.getStringAttribute("givenName"));
- basicUserInfo.setEmail(ctx.getStringAttribute("mail"));
- basicUserInfo.setUuid(ctx.getStringAttribute("seeAlso"));
- return basicUserInfo;
+ SimpleUserNature nature = new SimpleUserNature();
+ nature.setLastName(ctx.getStringAttribute("sn"));
+ nature.setFirstName(ctx.getStringAttribute("givenName"));
+ nature.setEmail(ctx.getStringAttribute("mail"));
+ nature.setDescription(ctx.getStringAttribute("description"));
+ return nature;
}
public void mapUserInfoToContext(UserNature userInfoArg,
DirContextAdapter ctx) {
- SimpleUserNature userInfo = (SimpleUserNature) userInfoArg;
- ctx.setAttributeValue("cn", userInfo.getFirstName() + " "
- + userInfo.getLastName());
- ctx.setAttributeValue("sn", userInfo.getLastName());
- ctx.setAttributeValue("givenName", userInfo.getFirstName());
- ctx.setAttributeValue("mail", userInfo.getEmail());
- // TODO: find a cleaner way?
- ctx.setAttributeValue("seeAlso", userInfo.getUuid());
+ SimpleUserNature nature = (SimpleUserNature) userInfoArg;
+ ctx.setAttributeValue("cn",
+ nature.getFirstName() + " " + nature.getLastName());
+ ctx.setAttributeValue("sn", nature.getLastName());
+ ctx.setAttributeValue("givenName", nature.getFirstName());
+ ctx.setAttributeValue("mail", nature.getEmail());
+ if (nature.getDescription() != null) {
+ ctx.setAttributeValue("description", nature.getDescription());
+ }
}
- public Boolean supports(UserNature userInfo) {
- return userInfo instanceof SimpleUserNature;
+ public Boolean supports(UserNature userNature) {
+ return userNature instanceof SimpleUserNature;
}
}