Java Doc for AbstractSecurityInterceptor.java in  » Security » acegi-security » org » acegisecurity » intercept » Java Source Code / Java DocumentationJava Source Code and Java Documentation

Java Source Code / Java Documentation
1. 6.0 JDK Core
2. 6.0 JDK Modules
3. 6.0 JDK Modules com.sun
4. 6.0 JDK Modules com.sun.java
5. 6.0 JDK Modules sun
6. 6.0 JDK Platform
7. Ajax
8. Apache Harmony Java SE
9. Aspect oriented
10. Authentication Authorization
11. Blogger System
12. Build
13. Byte Code
14. Cache
15. Chart
16. Chat
17. Code Analyzer
18. Collaboration
19. Content Management System
20. Database Client
21. Database DBMS
22. Database JDBC Connection Pool
23. Database ORM
24. Development
25. EJB Server geronimo
26. EJB Server GlassFish
27. EJB Server JBoss 4.2.1
28. EJB Server resin 3.1.5
29. ERP CRM Financial
30. ESB
31. Forum
32. GIS
33. Graphic Library
34. Groupware
35. HTML Parser
36. IDE
37. IDE Eclipse
38. IDE Netbeans
39. Installer
40. Internationalization Localization
41. Inversion of Control
42. Issue Tracking
43. J2EE
44. JBoss
45. JMS
46. JMX
47. Library
48. Mail Clients
49. Net
50. Parser
51. PDF
52. Portal
53. Profiler
54. Project Management
55. Report
56. RSS RDF
57. Rule Engine
58. Science
59. Scripting
60. Search Engine
61. Security
62. Sevlet Container
63. Source Control
64. Swing Library
65. Template Engine
66. Test Coverage
67. Testing
68. UML
69. Web Crawler
70. Web Framework
71. Web Mail
72. Web Server
73. Web Services
74. Web Services apache cxf 2.0.1
75. Web Services AXIS2
76. Wiki Engine
77. Workflow Engines
78. XML
79. XML UI
Java
Java Tutorial
Java Open Source
Jar File Download
Java Articles
Java Products
Java by API
Photoshop Tutorials
Maya Tutorials
Flash Tutorials
3ds-Max Tutorials
Illustrator Tutorials
GIMP Tutorials
C# / C Sharp
C# / CSharp Tutorial
C# / CSharp Open Source
ASP.Net
ASP.NET Tutorial
JavaScript DHTML
JavaScript Tutorial
JavaScript Reference
HTML / CSS
HTML CSS Reference
C / ANSI-C
C Tutorial
C++
C++ Tutorial
Ruby
PHP
Python
Python Tutorial
Python Open Source
SQL Server / T-SQL
SQL Server / T-SQL Tutorial
Oracle PL / SQL
Oracle PL/SQL Tutorial
PostgreSQL
SQL / MySQL
MySQL Tutorial
VB.Net
VB.Net Tutorial
Flash / Flex / ActionScript
VBA / Excel / Access / Word
XML
XML Tutorial
Microsoft Office PowerPoint 2007 Tutorial
Microsoft Office Excel 2007 Tutorial
Microsoft Office Word 2007 Tutorial
Java Source Code / Java Documentation » Security » acegi security » org.acegisecurity.intercept 
Source Cross Reference  Class Diagram Java Document (Java Doc) 


java.lang.Object
   org.acegisecurity.intercept.AbstractSecurityInterceptor

All known Subclasses:   org.acegisecurity.intercept.web.FilterSecurityInterceptor,  org.acegisecurity.intercept.method.aspectj.AspectJSecurityInterceptor,  org.acegisecurity.intercept.method.aopalliance.MethodSecurityInterceptor,
AbstractSecurityInterceptor
abstract public class AbstractSecurityInterceptor implements InitializingBean,ApplicationEventPublisherAware,MessageSourceAware(Code)
Abstract class that implements security interception for secure objects.

The AbstractSecurityInterceptor will ensure the proper startup configuration of the security interceptor. It will also implement the proper handling of secure object invocations, being:

  1. Obtain the Authentication object from the SecurityContextHolder .
  2. Determine if the request relates to a secured or public invocation by looking up the secure object request against the ObjectDefinitionSource .
  3. For an invocation that is secured (there is a ConfigAttributeDefinition for the secure object invocation):
    1. If either the org.acegisecurity.Authentication.isAuthenticated returns false, or the AbstractSecurityInterceptor.alwaysReauthenticate is true, authenticate the request against the configured AuthenticationManager . When authenticated, replace the Authentication object on the SecurityContextHolder with the returned value.
    2. Authorize the request against the configured AccessDecisionManager .
    3. Perform any run-as replacement via the configured RunAsManager .
    4. Pass control back to the concrete subclass, which will actually proceed with executing the object. A InterceptorStatusToken is returned so that after the subclass has finished proceeding with execution of the object, its finally clause can ensure the AbstractSecurityInterceptor is re-called and tidies up correctly.
    5. The concrete subclass will re-call the AbstractSecurityInterceptor via the AbstractSecurityInterceptor.afterInvocation(InterceptorStatusToken,Object) method.
    6. If the RunAsManager replaced the Authentication object, return the SecurityContextHolder to the object that existed after the call to AuthenticationManager.
    7. If an AfterInvocationManager is defined, invoke the invocation manager and allow it to replace the object due to be returned to the caller.
  4. For an invocation that is public (there is no ConfigAttributeDefinition for the secure object invocation):
    1. As described above, the concrete subclass will be returned an InterceptorStatusToken which is subsequently re-presented to the AbstractSecurityInterceptor after the secure object has been executed. The AbstractSecurityInterceptor will take no further action when its AbstractSecurityInterceptor.afterInvocation(InterceptorStatusToken,Object) is called.
  5. Control again returns to the concrete subclass, along with the Object that should be returned to the caller. The subclass will then return that result or exception to the original caller.


author:
   Ben Alex
version:
   $Id: AbstractSecurityInterceptor.java 1790 2007-03-30 18:27:19Z
version:
   luke_t $


Field Summary
final protected static  Loglogger
    
protected  MessageSourceAccessormessages
    


Method Summary
protected  ObjectafterInvocation(InterceptorStatusToken token, Object returnedObject)
    
public  voidafterPropertiesSet()
    
protected  InterceptorStatusTokenbeforeInvocation(Object object)
    
public  AccessDecisionManagergetAccessDecisionManager()
    
public  AfterInvocationManagergetAfterInvocationManager()
    
public  AuthenticationManagergetAuthenticationManager()
    
public  RunAsManagergetRunAsManager()
    
abstract public  ClassgetSecureObjectClass()
     Indicates the type of secure objects the subclass will be presenting to the abstract parent for processing.
public  booleanisAlwaysReauthenticate()
    
public  booleanisRejectPublicInvocations()
    
public  booleanisValidateConfigAttributes()
    
abstract public  ObjectDefinitionSourceobtainObjectDefinitionSource()
    
public  voidsetAccessDecisionManager(AccessDecisionManager accessDecisionManager)
    
public  voidsetAfterInvocationManager(AfterInvocationManager afterInvocationManager)
    
public  voidsetAlwaysReauthenticate(boolean alwaysReauthenticate)
     Indicates whether the AbstractSecurityInterceptor should ignore the Authentication.isAuthenticated property.
public  voidsetApplicationEventPublisher(ApplicationEventPublisher applicationEventPublisher)
    
public  voidsetAuthenticationManager(AuthenticationManager newManager)
    
public  voidsetMessageSource(MessageSource messageSource)
    
public  voidsetRejectPublicInvocations(boolean rejectPublicInvocations)
     By rejecting public invocations (and setting this property to true), essentially you are ensuring that every secure object invocation advised by AbstractSecurityInterceptor has a configuration attribute defined.
public  voidsetRunAsManager(RunAsManager runAsManager)
    
public  voidsetValidateConfigAttributes(boolean validateConfigAttributes)
    

Field Detail
logger
final protected static Log logger(Code)



messages
protected MessageSourceAccessor messages(Code)





Method Detail
afterInvocation
protected Object afterInvocation(InterceptorStatusToken token, Object returnedObject)(Code)
Completes the work of the AbstractSecurityInterceptor after the secure object invocation has been complete
Parameters:
  token - as returned by the AbstractSecurityInterceptor.beforeInvocation(Object)}method
Parameters:
  returnedObject - any object returned from the secure objectinvocation (may benull) the object the secure object invocation should ultimately returnto its caller (may be null)



afterPropertiesSet
public void afterPropertiesSet() throws Exception(Code)



beforeInvocation
protected InterceptorStatusToken beforeInvocation(Object object)(Code)



getAccessDecisionManager
public AccessDecisionManager getAccessDecisionManager()(Code)



getAfterInvocationManager
public AfterInvocationManager getAfterInvocationManager()(Code)



getAuthenticationManager
public AuthenticationManager getAuthenticationManager()(Code)



getRunAsManager
public RunAsManager getRunAsManager()(Code)



getSecureObjectClass
abstract public Class getSecureObjectClass()(Code)
Indicates the type of secure objects the subclass will be presenting to the abstract parent for processing. This is used to ensure collaborators wired to the AbstractSecurityInterceptor all support the indicated secure object class. the type of secure object the subclass provides services for



isAlwaysReauthenticate
public boolean isAlwaysReauthenticate()(Code)



isRejectPublicInvocations
public boolean isRejectPublicInvocations()(Code)



isValidateConfigAttributes
public boolean isValidateConfigAttributes()(Code)



obtainObjectDefinitionSource
abstract public ObjectDefinitionSource obtainObjectDefinitionSource()(Code)



setAccessDecisionManager
public void setAccessDecisionManager(AccessDecisionManager accessDecisionManager)(Code)



setAfterInvocationManager
public void setAfterInvocationManager(AfterInvocationManager afterInvocationManager)(Code)



setAlwaysReauthenticate
public void setAlwaysReauthenticate(boolean alwaysReauthenticate)(Code)
Indicates whether the AbstractSecurityInterceptor should ignore the Authentication.isAuthenticated property. Defaults to false, meaning by default the Authentication.isAuthenticated() property is trusted and re-authentication will not occur if the principal has already been authenticated.
Parameters:
  alwaysReauthenticate - true to forceAbstractSecurityInterceptor to disregard the value ofAuthentication.isAuthenticated() and alwaysre-authenticate the request (defaults to false).



setApplicationEventPublisher
public void setApplicationEventPublisher(ApplicationEventPublisher applicationEventPublisher)(Code)



setAuthenticationManager
public void setAuthenticationManager(AuthenticationManager newManager)(Code)



setMessageSource
public void setMessageSource(MessageSource messageSource)(Code)



setRejectPublicInvocations
public void setRejectPublicInvocations(boolean rejectPublicInvocations)(Code)
By rejecting public invocations (and setting this property to true), essentially you are ensuring that every secure object invocation advised by AbstractSecurityInterceptor has a configuration attribute defined. This is useful to ensure a "fail safe" mode where undeclared secure objects will be rejected and configuration omissions detected early. An IllegalArgumentException will be thrown by the AbstractSecurityInterceptor if you set this property to true and an attempt is made to invoke a secure object that has no configuration attributes.
Parameters:
  rejectPublicInvocations - set to true to rejectinvocations of secure objects that have no configuration attributes (bydefault it is false which treats undeclared secure objectsas "public" or unauthorized)



setRunAsManager
public void setRunAsManager(RunAsManager runAsManager)(Code)



setValidateConfigAttributes
public void setValidateConfigAttributes(boolean validateConfigAttributes)(Code)



Methods inherited from java.lang.Object
native protected Object clone() throws CloneNotSupportedException(Code)(Java Doc)
public boolean equals(Object obj)(Code)(Java Doc)
protected void finalize() throws Throwable(Code)(Java Doc)
final native public Class getClass()(Code)(Java Doc)
native public int hashCode()(Code)(Java Doc)
final native public void notify()(Code)(Java Doc)
final native public void notifyAll()(Code)(Java Doc)
public String toString()(Code)(Java Doc)
final native public void wait(long timeout) throws InterruptedException(Code)(Java Doc)
final public void wait(long timeout, int nanos) throws InterruptedException(Code)(Java Doc)
final public void wait() throws InterruptedException(Code)(Java Doc)

www.java2java.com | Contact Us
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.