How to create custom permission using Spring ACL
Create a MyOwnPermission class which extends BasePermission
Add new Permission like
public static final Permission ROLE_ACCEPT = new MyOwnPermission(1 << 5, 'C'); // 32
The mask & char code should not be same as the one from BasePermission, here I am using 32 as mask Spring 3.05 no more lets you to register your MyOwnPermission like below.
public final class MyOwnPermission extends BasePermission {
static {
BasePermission.registerPermissionsFor(MyOwnPermission.class)
}
}
As per Luke Taylor (Senior Member, Acegi Security System TeamSpring Team)
"You can inject a PermissionFactory into the BasicLookupStrategy and it will be used to generate the Permission objects. The DefaultPermissionFactory can be used to register additional permissions."
I did the below. I inject my MyOwnPermission class to one of MyOwn LookupStrategy implementation class.
public class MyOwnLookupStrategy implements LookupStrategy {
private PermissionFactory pf = new MyOwnPermissionFactory();
...
}
and the MyOwnPermissionFactory will be like
public class MyOwnPermissionFactory extends DefaultPermissionFactory {
public MyOwnPermissionFactory() {
super();
registerPublicPermissions(MyOwnPermission.class);
}
}
Refer Jira:SEC-813 & Jira:SEC-1022
http://static.springsource.org/spring-security/site/docs/3.0.x/reference/domain-acls.html
For more info see thread Springsource Forum:93416
Create a MyOwnPermission class which extends BasePermission
Add new Permission like
public static final Permission ROLE_ACCEPT = new MyOwnPermission(1 << 5, 'C'); // 32
The mask & char code should not be same as the one from BasePermission, here I am using 32 as mask Spring 3.05 no more lets you to register your MyOwnPermission like below.
public final class MyOwnPermission extends BasePermission {
static {
BasePermission.registerPermissionsFor(MyOwnPermission.class)
}
}
As per Luke Taylor (Senior Member, Acegi Security System TeamSpring Team)
"You can inject a PermissionFactory into the BasicLookupStrategy and it will be used to generate the Permission objects. The DefaultPermissionFactory can be used to register additional permissions."
I did the below. I inject my MyOwnPermission class to one of MyOwn LookupStrategy implementation class.
public class MyOwnLookupStrategy implements LookupStrategy {
private PermissionFactory pf = new MyOwnPermissionFactory();
...
}
and the MyOwnPermissionFactory will be like
public class MyOwnPermissionFactory extends DefaultPermissionFactory {
public MyOwnPermissionFactory() {
super();
registerPublicPermissions(MyOwnPermission.class);
}
}
Refer Jira:SEC-813 & Jira:SEC-1022
http://static.springsource.org/spring-security/site/docs/3.0.x/reference/domain-acls.html
For more info see thread Springsource Forum:93416