CDI is a JCP specification included in Java EE
Weld is the reference implementation of CDI
Seam 3 is a set of modules which extend CDI to provide functionality beyond that offered by Java EE 6
Think of JSR-299 as the core of Seam 3 - it's the basic programming model for your application components, and for the built-in components that make up the Seam framework
Seam 3 is implemented as a set of portable extensions, or modules
run in any environment which supports JSR-299 (including any Java EE 6 environment).
BPM integration, Seam Security, Drools integration, RESTeasy integration, PDF and email templates, Excel generation, etc
2.0.0.Final
End of 2012
Full specification compliance
An AuthorizingRealm extends the AuthenticatingRealm's capabilities by adding Authorization
(access control) support
perform all role and permission checks automatically (and subclasses do not have to
write this logic) as long as the
getAuthorizationInfo(org.apache.shiro.subject.PrincipalCollection) method returns an
AuthorizationInfo
AuthorizationInfo represents a single Subject's stored authorization data (roles, permissions, etc)
used during authorization (access control) checks only
Roles are represented as a Collection of Strings
(Collection<String>)
Permissions are provided in two ways:
A Collection of Strings, where each String can usually be converted into Permission
objects by a Realm's
PermissionResolver
A Collection of Permission objects
most Realms store both sets of data for a Subject
a Realm implementation to utilize an implementation of the
Account interface instead, which is a convenience interface that combines both
AuthenticationInfo and AuthorizationInfo
If your application's authentication process is username/password based
(like most), instead of implementing this interface yourself, take a look at the
UsernamePasswordToken class, as it is probably sufficient for your needs.
"If your application's authentication process is username/password based (like most), instead of implementing this interface yourself, take a look at the UsernamePasswordToken class, as it is probably sufficient for your need"
Realm that allows authentication and authorization via JDBC calls
this class can be subclassed and the
appropriate methods overridden. (usually doGetAuthenticationInfo(org.apache.shiro.authc.AuthenticationToken),
getRoleNamesForUser(java.sql.Connection,String), and/or getPermissions(java.sql.Connection,String,java.util.Collection)