Create user ID with 80 chars fail
We are using RAM 7.2.0.2 test fix 9, when we want to create a new user with 80 chars , it will throw exception means the ID is too long:
Caused by: com.ibm.ram.repository.core.IRepositoryAccess$RepositoryException: The string is too long for the field. It must be made shorter. at org.apache.axis.message.SOAPFaultBuilder.createFault(SOAPFaultBuilder.java:222) at org.apache.axis.message.SOAPFaultBuilder.endElement(SOAPFaultBuilder.java:129) at org.apache.axis.encoding.DeserializationContext.endElement(DeserializationContext.java:1087) at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source) at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanEndElement(Unknown Source) at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source) at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source) at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) at org.apache.xerces.parsers.XMLParser.parse(Unknown Source) at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source) at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source) at org.apache.xerces.jaxp.SAXParserImpl.parse(Unknown Source) at org.apache.axis.encoding.DeserializationContext.parse(DeserializationContext.java:227) at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:696) at org.apache.axis.Message.getSOAPEnvelope(Message.java:435) at org.apache.axis.handlers.soap.MustUnderstandChecker.invoke(MustUnderstandChecker.java:62) at org.apache.axis.client.AxisClient.invoke(AxisClient.java:206) at org.apache.axis.client.Call.invokeEngine(Call.java:2784) at org.apache.axis.client.Call.invoke(Call.java:2767) at org.apache.axis.client.Call.invoke(Call.java:2443) at org.apache.axis.client.Call.invoke(Call.java:2366) at org.apache.axis.client.Call.invoke(Call.java:1812) at com.ibm.ram.repository.web.ws.core.v72.RAM1SoapBindingStub.registerUser(RAM1SoapBindingStub.java:8497) at com.ibm.ram.internal.access.ws.RAMv72.registerUser(RAMv72.java:811) at com.ibm.ram.client.RAMSession.putUser(RAMSession.java:4816) Can anybody tell me how long is the length limit for the user ID in RAM ? Thanks. |
12 answers
The DB Col size for uid and user's name user is 80.
Is there really a name that is > 80 characters out there? |
The DB Col size for uid and user's name user is 80. Hi gmendel, We tried two name: (ibmscssoabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb@ccccccccccccccccc.com) and (ibmscsso!#$&'-./=?]^_`{|}~ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890@aaaaaaaaaaaa.com) Both using 80 chars and meet this problem. |
Not following - what are these names used for?
i.e., regarding ibmscssoabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb@ccccccccccccccccc.com Why 49 b and not 30 or 58? |
Hi Gmendal,
I just want to make it clear if in RAM can create user Id with 80 chars ? Thanks. |
Hi Gmendal, A user ID with 80 characters will not work. Some of the characters in the user ID column are reserved for purposes other than the ID. 70 characters or less will most likely work, but there has not been formal testing to ensure support for IDs of this length. |
The DB Col size for uid and user's name user is 80. Gili, Our product integrates with another application that has a requirement to have the userid upto 80 characters. We essentially take the userid provisioned in that application and provision it in RAM. |
Hi Gmendal, A user ID with 80 characters will not work. Some of the characters in the user ID column are reserved for purposes other than the ID. 70 characters or less will most likely work, but there has not been formal testing to ensure support for IDs of this length. Sheehan, This is interesting as I was able to create a userid with 79 chars in RAM. Based on that I am thinking that there is a bug in your code where the it is checking the length of the userid incorrectly. Also overloading a DB column to hold additional data sounds like a bad design decision. BTW we are on 7.2.0.2 |
We (as always) need to way performance / scalability vs. practical needs.
The 80 Col in the DB will be around 80 if it is ASCII ... but when it gets to UTF based (double char.) it will be less..... regardless, assume (English) ~80char for now. I find it hard to believe that anyone will actually hold a uid of 80 (or more) characters (hack, if it was me, I will never be be able to login anyware because my fingers will run over and misspell something along the way) The question is what is a good number? Is it a max possible email address (http://en.wikipedia.org/wiki/Email_address) 64 (for uid) and max of 254 (including domain) ? Open an enhancement if you really really think that you need it larger - or trust that there would not be uid that will not fit in RAM today. |
We (as always) need to way performance / scalability vs. practical needs. Gili, I am not disagreeing with you, but this is a requirement coming in from ibm.com web identity which we use to authenticate our users. www.ibm.com has in the past allowed userids with maximum length of 80 chars and continue to do so. |
yep, understand.
... will track this here: https://jazz.net/jazz02/resource/itemName/com.ibm.team.workitem.WorkItem/55264 |
Your answer
Dashboards and work items are no longer publicly available, so some links may be invalid. We now provide similar information through other means. Learn more here.