RE: referrals

2016-01-27 Thread Michael Perelman
thank you for the info, Stefan.

what are the benefits of switching to M21 with respect to referrals? or are you 
simply suggesting because it is just better overall?

> Subject: Re: referrals
> To: users@directory.apache.org
> From: m...@stefan-seelmann.de
> Date: Wed, 27 Jan 2016 22:08:44 +0100
> 
> On 01/27/2016 06:31 PM, Michael Perelman wrote:
> > i am running ads2.0.0-M17, and wondering if it supports referrals. the 
> > doc on your site is missing the section on referrals, so i was hoping 
> > that you would be able disclose info on how to use referrals in apache 
> > directory studio. thank you!  
> 
> Both, ApacheDS (the server) and Apache Directory Studio support
> referrals and search continuations.
> 
> On the server side you have to create entries with objectClass referral
> and ref attribute which contains the LDAP URL to the other server.
> ApacheDS then adds search continuations to the search result.
> 
> In Studio you can define in the connection properties "Browser Options"
> tab how referrals should be followed, and if the "ManageDsaIT" control
> should be used to manage referral entries, see documentation [1].
> 
> Kind Regards,
> Stefan
> 
> PS: You should switch to the latest ApacheDS 2.0.0-M21
> 
> [1]
> https://directory.apache.org/studio/users-guide/ldap_browser/tools_connection_properties.html
> 
  

custom interceptor's AdsBaseBean

2015-12-09 Thread Michael Perelman
hi. i am running 2.0.0M17 in regular (i.e. not embedded) mode, and i would like 
to introduce my own custom interceptor. i am trying to model it after the OOTB 
AuthenticationInterceptor, so mine will contain a password policy bearing 
several attributes that will be configurable via Apache Studio. after digging 
around through the source, i came across PasswordPolicyBean class that is 
apparently populated with the values from such attributes. the problem is that 
i am unable to determine as to how the attributes' values get propagated to 
this class. i noticed that each such attribute is represented with a respective 
variable tagged with @ConfigurationElement(attributeType = "attribute-name", 
isOptional = true, defaultValue = "some-val"). if i were to introduce my own 
MyPasswordPolicyBean class, would it be enough to just create variables with 
the same @ConfigurationElement tags, or do i need to perform additional steps 
in order for those variables to be populated with their respective attribute 
values?

thanks!
  

RE: config partition as JdbmPartition

2015-06-08 Thread Michael Perelman
i agree that access to such file would indicate a much larger security problem. 
nevertheless, security files of such nature should not be sitting around on the 
disk. other partition do not since they are in the form of a JdbmPartition, and 
neither should this one. all the passwords are already hashed, so that is not 
my concern. my concern are all the password policies that are defined within 
it, both OOTB ones, as well as the additional custom ones i created for my own 
interceptor. so is there a way to load a config.ldif into a JdbmPartition 
BEFORE starting directory service? thank you!

 Date: Tue, 9 Jun 2015 11:21:46 +0800
 Subject: Re: config partition as JdbmPartition
 From: kayyag...@apache.org
 To: users@directory.apache.org
 
 On Tue, Jun 9, 2015 at 5:24 AM, brock samson brock.sams...@hotmail.com
 wrote:
 
  i am running apacheds2-M19 as embedded with some custom interceptors. up
  to this point, i have been using SingleFileLdifPartition to load my
  config.ldif file. since it loads the config.ldif before
  DefaultDirectoryService.start(), i am also able to manually set the
  interceptors via DefaultDirectoryService.setInterceptors() before the start
  as well. what i do not like about it is that it requires the config.ldif
  file to be on the disk in clear text, which is a security risk in my
  opinion. what i would like is for the config partition to
 
 is your concern about clear text passwords in config.ldif? if yes, the just
 turn them into salted hashes
 other than this I don't see any other security issues with having config in
 plain text. (If someone managed
 to reach this far to access your config file then there is a much bigger
 hole in the network/system ;)
 
 look like all other partitions (i.e. system partition), which is a
  collection of .db and .lg files. i am able to accomplish that by using
  JdbmPartition class, but i cannot successfully load the config.ldif file
  via new LdifFileLoader(DefaultDirectoryService.getAdminSession(),
  config.ldif, null).execute() until after DefaultDirectoryService.start(),
  which makes it too late to set interceptors. is there a way to have config
  partition as JdbmPartition AND load its config.ldif before starting the
  service? or is there a another way to not have config.ldif on the disk in
  clear text? thanks!
 
 no, it is not possible to have this config loaded into any other partition
 type
 
 
 
 -- 
 Kiran Ayyagari
 http://keydap.com
  

sources for Apache Directory Studio libraries

2015-03-26 Thread Michael Perelman
i have looked through your Apache Directory Studio and noticed two 3rd party 
libraries -- org.openoffice.odfdom (v0.6.16) and DocBook-XSL (v1.71.1) -- for 
which i am unable to locate sources. could you please point me to a location(s) 
where the sources reside? thanks!
  

RE: checking group membership during while binding

2015-03-23 Thread Michael Perelman
correct, right after user authentication i need to check which groups that user 
is a member of. if a user has access to its own attributes, would checking its 
member attribute do the trick?

 Date: Thu, 19 Mar 2015 07:29:20 +0100
 From: elecha...@gmail.com
 To: users@directory.apache.org
 Subject: Re: checking group membership during while binding
 
 Le 19/03/15 00:50, Michael Perelman a écrit :
  While using Apache LDAP java APIs, is there a way to check for group 
  membership during the binding process? Or is the only way to determine 
  group membership is by doing a regular lookup, and only after binding? The 
  latter approach may not work because the authenticated user may not have 
  the access rights to perform any lookups, thereby forcing the use of an 
  LDAP administrator. That means that its credentials need to be stored 
  somewhere outside the LDAP server in order for the client code to use its 
  account for the aforementioned lookup. What approach would you suggest?

 I'm not sure what you want to do here. What is your check for group
 membership in LDPA terms ?
 
 If you mean you want to look at the content of the 'member' attribute,
 then yes, a lookuo is the way. If you don't want to do that regularly,
 then using the persistentSearch contrl might be an option : you will be
 informed of any change done on this attribute.
 
 Obviously, you will depend on yoru LDAP server settings to have access
 to this attribute. If your server does not allow operations to be done
 without any binding (yes, you can do a search without doing any bind,
 this is allowed by the protocol, but most generally forbidden by some
 server configuration), then depending on the authorization, you might
 also have to pick the right user to complete such a lookup.
 
 All in all, it's really a server configuration problem...
 
  

checking group membership during while binding

2015-03-18 Thread Michael Perelman
While using Apache LDAP java APIs, is there a way to check for group membership 
during the binding process? Or is the only way to determine group membership is 
by doing a regular lookup, and only after binding? The latter approach may not 
work because the authenticated user may not have the access rights to perform 
any lookups, thereby forcing the use of an LDAP administrator. That means that 
its credentials need to be stored somewhere outside the LDAP server in order 
for the client code to use its account for the aforementioned lookup. What 
approach would you suggest?
  

RE: ldif import works in studio, fails with LdifFileLoader

2015-02-25 Thread Michael Perelman
So what am I doing wrong?

 Date: Wed, 25 Feb 2015 01:07:41 +0100
 From: elecha...@gmail.com
 To: users@directory.apache.org
 Subject: Re: ldif import works in studio, fails with LdifFileLoader
 
 Le 24/02/15 22:32, Stefan Seelmann a écrit :
  On 02/24/2015 07:30 PM, Michael Perelman wrote:
  I looked at the issue that you have opened on this matter, and it seems to 
  suggest that the workaround entails splitting the .ldif file into two 
  .ldif files -- one for content and another for actions. I i went ahead and 
  isolated the following entry into its own separate .ldif file:
 
  dn: dc=mycompany,dc=com
  changetype: modify
  add: administrativeRole
  administrativeRole: accessControlSpecificArea
 
  But that still does not add administrativeRole to my partition. Could you 
  please provide a more detailed description of the workaround? Thanks!
 
  Please try to finish the change record with an - like this:
 
  dn: dc=mycompany,dc=com
  changetype: modify
  add: administrativeRole
  administrativeRole: accessControlSpecificArea
  -
 
  I guess the parser is a bit too strict here.
 
 It's not. The RFC mandates the final - followed by a NewLine :
 
 mod-spec = (add: / delete: / replace:)
FILL AttributeDescription SEP
*attrval-spec
- SEP
 
 SEP  = (CR LF / LF)
 
 
 
  

RE: ldif import works in studio, fails with LdifFileLoader

2015-02-24 Thread Michael Perelman
I do not see an error. Both .ldif files import without throwing an exception, 
but I do not see the administrativeRole entry under my partition in the Studio. 
I typically right-click on my partition entry and then select Fetch--Fetch 
Operational Attributes to expose its presence. When I add administrativeRole 
via Studio, it appears below my partition's existing attributes. But in this 
case it is not there. Furthermore, LdifFileLoader.execute() returns 0 when 
importing my actions .ldif, which indicates that no changes were introduced 
during the import.

 Date: Tue, 24 Feb 2015 19:54:07 +0100
 From: elecha...@gmail.com
 To: users@directory.apache.org
 Subject: Re: ldif import works in studio, fails with LdifFileLoader
 
 Le 24/02/15 19:30, Michael Perelman a écrit :
  I looked at the issue that you have opened on this matter, and it seems to 
  suggest that the workaround entails splitting the .ldif file into two .ldif 
  files -- one for content and another for actions. I i went ahead and 
  isolated the following entry into its own separate .ldif file:
 
  dn: dc=mycompany,dc=com
  changetype: modify
  add: administrativeRole
  administrativeRole: accessControlSpecificArea
 
  But that still does not add administrativeRole to my partition. Could you 
  please provide a more detailed description of the workaround? Thanks!
 
 What's the error you get ? Or is it that you don't see the
 administrativeRole attribute ? If so, this is plain normal, it's an
 operational attribute, you have to specify that you want it back when
 you do a search.
 
  

RE: ldif import works in studio, fails with LdifFileLoader

2015-02-24 Thread Michael Perelman
I looked at the issue that you have opened on this matter, and it seems to 
suggest that the workaround entails splitting the .ldif file into two .ldif 
files -- one for content and another for actions. I i went ahead and isolated 
the following entry into its own separate .ldif file:

dn: dc=mycompany,dc=com
changetype: modify
add: administrativeRole
administrativeRole: accessControlSpecificArea

But that still does not add administrativeRole to my partition. Could you 
please provide a more detailed description of the workaround? Thanks!

 Date: Tue, 24 Feb 2015 18:04:23 +0800
 Subject: Re: ldif import works in studio, fails with LdifFileLoader
 From: kayyag...@apache.org
 To: users@directory.apache.org
 
 On Tue, Feb 24, 2015 at 3:54 PM, Michael Perelman 
 mikhail_perel...@hotmail.com wrote:
 
  Ok, I understand the need for proper order within an .ldif file when
  loading one via LdifFileLoader, thanks!
 
  What I am still not clear about is how to properly add administrativeRole
  entry. I have modified my .ldif file to look like this:
 
  dn: dc=mycompany,dc=com
  objectclass: domain
  objectclass: top
  objectclass: extensibleObject
  dc: mycompany
  ou: mycompany
 
  dn: dc=mycompany,dc=com
  changetype: modify
  add: administrativeRole
  administrativeRole: accessControlSpecificArea
 
  LDIF is not allowed to contain both entries and changesets, however Studio
 allows this and we may support[1] this mode in
 server as well.
 
 For now, the workaround is to add this attribute during that entry
 creation
 
 [1] https://issues.apache.org/jira/browse/DIRAPI-222
 
  dn: cn=allowUserSelfMod,dc=mycompany,dc=com
  objectClass: subentry
  objectClass: accessControlSubentry
  objectClass: top
  cn: allowUserSelfMod
  prescriptiveACI: { identificationTag , precedence 0, authenticationLevel
  s
   imple, itemOrUserFirst userFirst: { userClasses { thisEntry },
  userPermissi
   ons { { protectedItems { entry }, grantsAndDenials { grantBrowse,
  grantRetu
   rnDN, grantModify, grantRead } }, { protectedItems { allAttributeValues {
  u
   serPassword } }, grantsAndDenials { grantRemove, grantAdd } } } } }
  subtreeSpecification: { }
 
  dn: ou=people,dc=mycompany,dc=com
  objectClass: organizationalUnit
  objectClass: top
  ou: people
 
  This is still not loading properly via LdifFileLoader. In your previous
  response, you stated that administrativeRole must be added to the entry
  immediately, yet I was still not able to make it work. Please show me the
  proper way to configure it.
 
  To answer your last question, I am using an admin session to import the
  .ldif file.
 
  Thanks!
 
  On 11/02/15 19:26, Michael Perelman wrote :
   Hi. My case involves an embedded instance of ADS-M17 where I load a
  simple .ldif file
  during start-up using LdifFileLoader instance. I always use the Studio to
  perform initial
  tests, and it works in this particular case. But when I use
  LdifFileLoader, the security-related
  entities are never created. Here is what the .ldif looks like:
 
  LdapStudio will order the LDIF before injecting it. The LdifLoader wont.
  Typically, here, the dc=myCompany,dc=com is not the first entry, and the
  loader will yell at you because it's messing when it will try to load
  the first entry (ou=people,dc=mycompany,dc=co).
 
  Another thing : why are you modifying the entry you just injected before
  (dc=mycompany,dc=com)? It's a better idea to add the administrativeRole
  attribute to the entry immediately.
 
  Last, not least: which user are you using to inject the entries ?
 
  
   dn: ou=people,dc=mycompany,dc=com
   objectClass: organizationalUnit
   objectClass: top
   ou: people
  
   dn: dc=mycompany,dc=com
   objectclass: domain
   objectclass: top
   objectclass: extensibleObject
   dc: mycompany
   ou: mycompany
  
   dn: dc=mycompany,dc=com
   changetype: modify
   add: administrativeRole
   administrativeRole: accessControlSpecificArea
  
   dn: cn=allowUserSelfMod,dc=mycompany,dc=com
   objectClass: subentry
   objectClass: accessControlSubentry
   objectClass: top
   cn: allowUserSelfMod
   prescriptiveACI: { identificationTag , precedence 0,
  authenticationLevel s
imple, itemOrUserFirst userFirst: { userClasses { thisEntry },
  userPermissi
ons { { protectedItems { entry }, grantsAndDenials { grantBrowse,
  grantRetu
rnDN, grantModify, grantRead } }, { protectedItems { allAttributeValues
  { u
serPassword } }, grantsAndDenials { grantRemove, grantAdd } } } } }
   subtreeSpecification: { }
  
   The dc=mycompany,dc=com partition and its ou=people org unit are created
  successfully
  when using either the Studio or the LdifFileLoader. Yet partition's
  administrativeRole and
  accessControlSubentry are only created when using the Studio, while
  importing via LdifFileLoader
  does not! And no exceptions are thrown at any time.
  
   Thanks!
  
 
 
 
 
 -- 
 Kiran Ayyagari
 http://keydap.com
  

RE: ldif import works in studio, fails with LdifFileLoader

2015-02-24 Thread Michael Perelman
Still no success. I tried both with and without trailing blank line.

 Date: Tue, 24 Feb 2015 22:32:25 +0100
 From: m...@stefan-seelmann.de
 To: users@directory.apache.org
 Subject: Re: ldif import works in studio, fails with LdifFileLoader
 
 On 02/24/2015 07:30 PM, Michael Perelman wrote:
  I looked at the issue that you have opened on this matter, and it seems to 
  suggest that the workaround entails splitting the .ldif file into two .ldif 
  files -- one for content and another for actions. I i went ahead and 
  isolated the following entry into its own separate .ldif file:
  
  dn: dc=mycompany,dc=com
  changetype: modify
  add: administrativeRole
  administrativeRole: accessControlSpecificArea
  
  But that still does not add administrativeRole to my partition. Could you 
  please provide a more detailed description of the workaround? Thanks!
  
 
 Please try to finish the change record with an - like this:
 
 dn: dc=mycompany,dc=com
 changetype: modify
 add: administrativeRole
 administrativeRole: accessControlSpecificArea
 -
 
 I guess the parser is a bit too strict here.
 
 Kind Regards,
 Stefan
 
  

ldif import works in studio, fails with LdifFileLoader

2015-02-11 Thread Michael Perelman
Hi. My case involves an embedded instance of ADS-M17 where I load a simple 
.ldif file during start-up using LdifFileLoader instance. I always use the 
Studio to perform initial tests, and it works in this particular case. But when 
I use LdifFileLoader, the security-related entities are never created. Here is 
what the .ldif looks like:

dn: ou=people,dc=mycompany,dc=com
objectClass: organizationalUnit
objectClass: top
ou: people

dn: dc=mycompany,dc=com
objectclass: domain
objectclass: top
objectclass: extensibleObject
dc: mycompany
ou: mycompany

dn: dc=mycompany,dc=com
changetype: modify
add: administrativeRole
administrativeRole: accessControlSpecificArea

dn: cn=allowUserSelfMod,dc=mycompany,dc=com
objectClass: subentry
objectClass: accessControlSubentry
objectClass: top
cn: allowUserSelfMod
prescriptiveACI: { identificationTag , precedence 0, authenticationLevel s
 imple, itemOrUserFirst userFirst: { userClasses { thisEntry }, userPermissi
 ons { { protectedItems { entry }, grantsAndDenials { grantBrowse, grantRetu
 rnDN, grantModify, grantRead } }, { protectedItems { allAttributeValues { u
 serPassword } }, grantsAndDenials { grantRemove, grantAdd } } } } }
subtreeSpecification: { }

The dc=mycompany,dc=com partition and its ou=people org unit are created 
successfully when using either the Studio or the LdifFileLoader. Yet 
partition's administrativeRole and accessControlSubentry are only created when 
using the Studio, while importing via LdifFileLoader does not! And no 
exceptions are thrown at any time.

Thanks!
  

ADS 2.0.0 password policy

2014-10-28 Thread michael perelman
i am attempting to implement a password policy in ADS 2.0.0-M17, and this is a 
two-part question.

1) i came across the same issue as described here: 
http://stackoverflow.com/questions/23550061/apacheds-password-policy-check-not-getting-enforced
the poster all the way at the bottom stated that password policies are not 
enforced whenever an administrator is the one creating/editing a password. is 
that true? if so, is that a bug that will be rectified in the future, or was it 
implemented in such a way with a purpose?

2) is it possible to use a regex formula for a password policy?

thank you!
  

official ApacheDS 2.0 release

2014-10-15 Thread michael perelman
hi. i was wondering if an official ApacheDS 2.0 release was ever created? the 
downloads for the 2.0 version seem to suggest that it was not, and that you are 
still working toward it. if such is the case, could you please tell me what the 
ETA for 2.0 is? thank you!