Showing posts with label xml. Show all posts
Showing posts with label xml. Show all posts

Friday, 2 August 2013

Securing Fedora Commons 3.6.2 with XACML Policies.

The Flexible Extensible Digital Object Repository Architecture aka Fedora Repository uses XACML  based policies for authentication and authorization. XACML is an XML based policy language that is used to define access control lists and secure applications using a standard policy based approach.
The latest release of Fedora 3.6.2 promotes  the JAAS based FeSL as the default security layer. FeSL which was introduced in 2011 is designed to improve upon the legacy XACML based security scheme that has been Fedora's backbone since its release. While FeSL simplifies security, XACML still retains its relevance in terms of managing and setting up access to the API-A and API-M interfaces. The API-A interface provides a read-only access to the repository's properties and its objects. API-M on the other hand enables management of the repository and allows edit access to the contained objects.
While Fedora ships with a basic set of XACML policies that provide a basis for securing access to the two interfaces, there will be scenaros when authoring a custom policy will be required. When attempting to write the policy writing guide is a good place to start. XACML policies are rule based and generally enforce either an PERMIT or a DENY result to a specific resource. Apart from these two results, there are the the Not Applicable and the Indeterminate results too.
When attempting to understand the application of the policies and the final results that are generated, the two key points to take away is that the DENY rule supercede's the PERMIT rule.  For example, if an administrator is PERMITTED to access the API-A interface but there is a DENY rule on a specific API-A operation that applies to all users including the administrator, then the administrator will not have access to that specific operation.
Secondly, access to a resource has to be explictly granted.  For example, if there is a DENY rule that limits access to the API-A interface to all non-admin users, it does not explicitly imply that administrators will be able to access the API-A interface. There has to be a PERMIT rule that gives them that access. Thus, while designing policies, do remember to check out section 3.3 in the policy enforcement guide. It might save you hours when you are trying to figure out why a certain user cannot access an interface !!

Wednesday, 21 March 2012

JDom : The Java based solution for XML manipulation

JDom is a Java based open-source XML manipulation tool that is easy to install and use. Whereas technologies like JaXB are focussed on the marshalling and unmarshalling of XML using Java beans, JDom is more of a XML manipulation tool that is an alternative to DOM and SAX even though as the FAQ says, it integrates well with both these technologies.The best way to understand how well JDOM fits into your requirements is to read the very detailed FAQ. JDom version 1.1.13 is the latest version which is now available from maven-central.

  org.jdom
  jdom
  1.1.3
  
  
   
    maven-plugins
    maven-cobertura-plugin
   
   
    maven-plugins
    maven-findbugs-plugin
   
  
 
xPath support in JDom via Jaxen makes accessing and manipulating XML document trees a breeze. Thus, if you are looking for a low cost solution for manipulating XML documents from a pre-existing template or querying an XML document for extracting xml attribute values, give JDOM a run.

Thursday, 5 November 2009

XStream : The Simplest XML serializer

Serializing XML to (Java) objects and back just became simpler with what is being touted as the fastest and the simplest XML serializer, XStream.

According to this bench marking excercise, XStream is the fastest Serializer to hit our Java objects. While marshalling and unmarshalling is a time consuming task, using XStream would definitely be a performance boost. But while speed and its low memory foot print are talking points, it is simply easy to use. The XStream two minute tutorial takes TWO MINUTES to read and digest. The only slightly disconcerting aspect is that releases are few and far apart.

One a final note, if you are looking for an XML serializer that serialises with no hang ups, XStream might fit the bill but be aware that using XStream is like traveling in the economy class of a budget airline and while you might get home, you cannot expect too many features. For features, pick up JaxB 2.1 or XMLBeans.

Saturday, 23 June 2007

John's essential links..for the saavy J2EE developer

We often come across useful information in our development phase and store it away as a book mark but we don't really index or summarise the information for later use and end up Googling for the same information when we need it again.

I intend to maintain this page as a collection of links related to various J2EE tools and technologies, that can be used for as a one stop shop for finding my favorite J2EE links regarding a particular technology or the solution to an issue I faced and sharing them with the J2EE community.

Feel free to send me your favorite links with a short summary of what is there on the page and I'll add it to the list.

----------------------
  • Build Tools

A. Maven


1. This article gives a good conceptual overview of the maven build tool and a handy startup command reference.
2. From the Maven home page, a starter's guide. This page has a handy faq but tries to focus on too many things and so might not answer all your doubts but it does give you something to go on.
3.Another good explanation of Maven concepts and a starter guide.

B. Ant

  • Java XML Serialization Technology

JAXB

1. A beginner's guide to JAXB.


  • Wikis and Blogging Tools

A. Versionate

B. MediaWiki

C. BaseCamp

  • Logging Tools
A. Log4J

  • Testing Tools
A. JUnit

B. Cactus

C. JMeter

D. SoapUI

  • Web Application Servers
A. Tomcat

B. JBOSS

C. WebLogic

  • Presentation / Web Tier
A. Struts

B. JSF

C. AJAX

D. CSS


  • Code Standardizing / Bug Finding Tools

A. PMD

B. findBugs

C. lint4J

  • Source Control Software
A. SubVersion

B. TortoiseSVN

Refer to this post for information, directions and tips on understanding, setting up and using Subversion and TortoiseSVN.
  • Useful Tools
Source Generation Tools

A. MiddleGen
B. XDoclet

Tailing Log Files : Cygwin

  • Frameworks
A. Spring

B. JEMS

  • Interesting APIs
A. Google Maps

1. This article has an excellent collection of Google Maps API usability examples.
2. This post summarises some of the other Google APIs, mainly the Google ToolBar API, Google Gadgets API, the Google Calendar API among others.

  • Setting Up / Configuring Tools / HowTos