Skip to content

Attributes always treated as arrays? #241

@bkosborne

Description

@bkosborne

I hoped to pass the LDAP attribute "gidNumber" as an extra attribute that is returned in CAS validation. Upon doing do, I get output like this:

<cas:serviceResponse xmlns:cas="http://www.yale.edu/tp/cas">
  <cas:authenticationSuccess>
    <cas:user>bosborne</cas:user>
    <gidNumber>
      <![CDATA[--- 
- "123"
]]>
    </gidNumber>
  </cas:authenticationSuccess>
</cas:serviceResponse>

Instead of just presenting the single value 123, it's presented as a YAML array with one entry. The code that does that is here: https://github.com/rubycas/rubycas-server/blob/master/lib/casserver/server.rb#L738

The underlying LDAP library this gem uses is responsible for treating LDAP attributes as arrays, even if there is just one value in them. I think the majority of LDAP attributes are single value, like gidNumber which is a widely used attribute and not multivalued (from what I've seen). So presenting them as arrays is kind of tough to accept.

I wonder if someone with more experience can chime in on this behavior? Is it really expected that a YAML array of one value should be returned for a simple attribute such as gidNumber?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions