Spring Security
http://blog.springsource.com/2009/01/02/spring-security-customization-part-1-customizing-userdetails-or-extending-grantedauthority/
http://blog.springsource.com/2009/01/02/spring-security-customization-part-2-adjusting-secured-session-in-real-time/
Principal –User,Device or system that performs action
Authentication –Establishing principals credentials are proper.(LDAP ,Database etc)
Authorization –Deciding if a principal is allowed to perform an action.
Secured Item – resource being secured.
Spring security is Portable across containers.
Secure item – method , web page(url) or flow(web flow)
Voters – 2 default- role based and authenticate based
3 types of AccessDecision manager (judges)
1. AffirmativeBased (anyone says yes –it’s a yes) -Default
2. Unanimous based – very conservative – one voter says no – it’s a no
3. Consensus based – based on majority says yes – majority is configurable – all these are configurable
Configuration in Web Application
<security:http> - configures default accessmgr, default filters, voters, security interceptor etc
Configures a servlet filter in web.xml
<security intercept-url pattern=”…” filters=”” acess=””/> can be configured
Spring security Taglibs since spring 2.0
Method Security(based on AOP)
Xml based - point cuts in xml with access role
Configuration based – have to register to get this enabled. , also has JSR specific annotations
Bad to put security constraints inside class – use xml approach over annotations – security is infrastructure
Advanced Security In web –
HttpSessionContextIntegrationFilter – stores context in session - if exists gets it and binds to thread local –way back binds it to session
LogoutFilter –clears security context on logoff
AuthenticationProcessingFilter - If not authenticated then send to login page
ExceptionTranslationFilter – converts exception into http responses and redirects
FilterSecurityInterceptor - authorises web requests based on url patterns
Any of these can be replaced and any can be added in the required order.
So filters for all these purposes are already placed.
Security context can be obtained anywhere in the code using – spring class SecurityContext.getCtx();
Obfuscating – is just setting bean – to avoid knowing technology
Spring Remoting
Consistency across all protocols and flipping from one protocol to another is simple.
Supported Protocols
RMI
HttpInvoker – is a protocol –over http
EJB
Hessian/Burlap(for sending XML over HTTP –Less predictable with complex types)
Hessian –uses binary xml
Burlap –uses textual xml
Spring on Server & Client –Use Http Invoker
Java Env but no Web Server –Use RMI
Interop with other languages Using HTTP – Hessian
Spring JMS
Message,Destination,Connection,Session,MessageProducer,MesageConsumer
Spring JMSTemplate
DynamicDestinationResolver
JMSTemplate – takes connectionFactory,MessageConvertor,DestinationResolver,
Spring JMX
MBean is a standard java bean with an additional management interface – attributes (with getters and setters) and Operations
Rmi is default protocol – can be changed
JVM runs a default MBean server , we can also override this by one given from spring
<context mbean –export>
Default –export everything – mostly a bundle will have only mbeans exposed
Export bean as MBean.
Strategies –
objectNamingStratergy- keyNamingStratergy(Default) , IdetitynamingStratergy(naming by objected from JVM),MetaDataNamingStratergy (annotations) – not recommended
One strategy can be overriden by the other.
MBeanInfoAssembler- by implementations of the MBeanInfoAssembler interface
To run with JMX add -Dcom.sun.management.jmxremote as VM param
OSGI
Single Version mean atleast that version
Resolves to the greatest -
Running in eclipse
Added vm param for clean
In manifest given space for the next line – because its reserved for headers
Import package , not mentioned – binds to the latest
Resolved phase- doesn’t mean classes are loaded
When classloader gets GC’ed - when objects are Gc'ed and all bundles importing from this bundle are refreshed(osgi refresh command)
Using Eclipse to simulate Equinox
Run configurations - > OSGi Configurations – new - Uncheck target platform - In filter search org.eclipse.osgi(any version ) – select it – apply – run
ss will show only equinox bundle.
Change run config as - -Dosgi.clean=true
Create new project – plugin – new plugin project - select run environment as equinox
Can run this new project under equinox with the created run configurations – Run as ...
Thursday, November 12, 2009
Spring Training - Day 4
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment