[jbossseam-issues] [JBoss JIRA] Created: (JBSEAM-1229) Remoting exception with JMS subscription
by Alex Mateescu (JIRA)
Remoting exception with JMS subscription
----------------------------------------
Key: JBSEAM-1229
URL: http://jira.jboss.com/jira/browse/JBSEAM-1229
Project: JBoss Seam
Issue Type: Bug
Components: Remoting
Affects Versions: 1.2.1.GA
Environment: JEMS Installer 1.2 ejb3 profile, JBoss Portal 2.6.0ALPHA1, JBoss Seam 1.2.1GA running on Fedora Core 6, Firefox 1.5
Reporter: Alex Mateescu
Assigned To: Shane Bryzak
Priority: Minor
I am deploying an EAR with multiple (the number is probably irrelevant) JARs and WARs that use Seam Remoting and subscribe to a JMS topic.
The subscribe calls work fine, they send the correct topic name and receive a token. On the first poll, though, there is an exception:
2007-04-23 14:08:29,602 ERROR [org.jboss.seam.remoting.Remoting] Error
java.lang.IllegalArgumentException: Invalid token argument - token not found in Session Context. [undefined]
at org.jboss.seam.remoting.messaging.SubscriptionRegistry.getSubscription(SubscriptionRegistry.java:179)
at org.jboss.seam.remoting.messaging.PollRequest.poll(PollRequest.java:45)
at org.jboss.seam.remoting.PollHandler.handle(PollHandler.java:83)
at org.jboss.seam.remoting.Remoting.getResource(Remoting.java:110)
at org.jboss.seam.servlet.ResourceServlet.doGet(ResourceServlet.java:68)
at org.jboss.seam.servlet.ResourceServlet.doPost(ResourceServlet.java:77)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
Upon closer inspection, the polling request looks like this:
<envelope><body><poll token="c312b1bb-d996-46e4-a8d7-6f35caa99d73" timeout="10"/><poll token="undefined" timeout="10"/></body></envelope>
which is the cause of the exception.
Subsequent calls look fine:
<envelope><body><poll token="c312b1bb-d996-46e4-a8d7-6f35caa99d73" timeout="10"/><poll token="3922899d-1e6b-4bc1-96ab-3713f4460446" timeout="10"/></body></envelope>
I think the error was there before, when using Seam 1.1.0GA, but it was random. I may be wrong, but now it is always there.
Of course, remoting works fine after the initial call.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
13 years, 5 months
[jbossseam-issues] [JBoss JIRA] Created: (JBSEAM-3942) LdapIdentityStore should crypt password
by Raimund Hölle (JIRA)
LdapIdentityStore should crypt password
---------------------------------------
Key: JBSEAM-3942
URL: https://jira.jboss.org/jira/browse/JBSEAM-3942
Project: Seam
Issue Type: Feature Request
Components: Security
Affects Versions: 2.1.1.GA, 2.1.1.CR2, 2.1.1.CR1, 2.1.0.SP1
Reporter: Raimund Hölle
Priority: Minor
LdapIdentityStore.changePassword() stores the new password always as plain text in the LDAP database.
To allow crypted passwords, i suggest the following modifications:
New bean properties (along with getter / setter):
private String passwordCryptAlgorithm = "SHA"; // Or "" for plain text, "MD5", ...
private String passwordEncoding = "UTF-8";
Extend changePassword() by one additional line:
public boolean changePassword(String name, String password)
{
InitialLdapContext ctx = null;
try
{
ctx = initialiseContext();
// crypt password if not already done
password = cryptPwIfNeeded(password);
BasicAttribute passwordAttrib = new BasicAttribute(getUserPasswordAttribute(), password);
New Helpers method:
private Pattern cryptedPwRegexp = Pattern.compile("^[{].+[}].+");
private String cryptPwIfNeeded(String password) {
// only crypt if requested by algorithm and not already done!
if (getPasswordCryptAlgorithm() != null
&& ! getPasswordCryptAlgorithm().equals("")
&& ! cryptedPwRegexp.matcher(password).matches()) {
try {
MessageDigest md;
md = MessageDigest.getInstance(getPasswordCryptAlgorithm());
md.reset();
md.update(password.getBytes(getPasswordEncoding()));
byte[] result = md.digest();
password = "{" + getPasswordCryptAlgorithm() + "}" + (new BASE64Encoder()).encode(result);
} catch ( NoSuchAlgorithmException e ) {
throw new IdentityManagementException(
"Configuration problem - can not crypt password with algorithm " + getPasswordCryptAlgorithm(), e);
} catch ( UnsupportedEncodingException e ) {
throw new IdentityManagementException(
"Configuration problem - can not encode password with " + getPasswordEncoding(), e);
}
}
return password;
}
Many regards, Raimund
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
13 years, 5 months
[jbossseam-issues] [JBoss JIRA] Created: (JBSEAM-4350) Enable/Disable a Role
by Sand Lee (JIRA)
Enable/Disable a Role
---------------------
Key: JBSEAM-4350
URL: https://jira.jboss.org/jira/browse/JBSEAM-4350
Project: Seam
Issue Type: Feature Request
Components: Security
Affects Versions: 2.2.0.GA
Reporter: Sand Lee
Enable/Disable a Role
Is it possible to disable/enable a role by annotation configuration in the same way like @RoleConditional is configured.
Adding a Boolean property in the role class and annote it with @RoleEnabled. This property holds the status of the role (active/inactive).
If a role is disabled it should not be returned when JpaIdentityStore.listRoles() or JpaIdentityStore.getImpliedRoles() is called.
that also requires a new method in getJpaIdentityStore().setRoleStatus(String roleName Boolean status) to set the Role status.
If this Method is called, all permissions which have this role as recipient should be deactivated by setting a flag in each permission object.
So that JpaPermissionStore.listPermissions() only returns permissions that not belongs to deactivated roles.
It also raises an RoleDisabled event and the identity objects (from already loggedin users) are listen to this event and then it checks if the identity has this role.
If an already loggedin user has this role it will be removed from identity object.
Is it possible to include a mechanism like this?
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
13 years, 5 months