Author: reto
Date: Sat Jun 19 16:19:41 2010
New Revision: 956251

URL: http://svn.apache.org/viewvc?rev=956251&view=rev
Log:
CLEREZZA-93: added foaf+ssl to launcher

Added:
    
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.security.foafssl/
      - copied from r956215, 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.foafssl/
    
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.security.foafssl/core/src/main/scala/org/apache/clerezza/foafssl/Utilities.scala
      - copied, changed from r956215, 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.foafssl/core/src/main/scala/org/apache/clerezza/foafssl/CertUtilities.scala
    
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.security/src/main/java/org/apache/clerezza/platform/security/SecurityActivator.java
Removed:
    
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.foafssl/
    
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.security.foafssl/core/src/main/scala/org/apache/clerezza/foafssl/CertUtilities.scala
Modified:
    
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.accountcontrolpanel/org.apache.clerezza.platform.accountcontrolpanel.core/src/main/java/org/apache/clerezza/platform/accountcontrolpanel/AccountControlPanel.java
    
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.launcher.storageless.parent/pom.xml
    
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.security.foafssl/core/pom.xml
    
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.security.foafssl/core/src/main/scala/org/apache/clerezza/foafssl/WebDescriptionProvider.scala
    
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.security.foafssl/core/src/main/scala/org/apache/clerezza/foafssl/auth/FoafSslAuthentication.scala
    
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.security.foafssl/core/src/main/scala/org/apache/clerezza/foafssl/ssl/X509TrustManagerWrapperService.scala
    
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.security.foafssl/ontologies/pom.xml
    
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.security.foafssl/pom.xml
    incubator/clerezza/trunk/org.apache.clerezza.parent/pom.xml

Modified: 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.accountcontrolpanel/org.apache.clerezza.platform.accountcontrolpanel.core/src/main/java/org/apache/clerezza/platform/accountcontrolpanel/AccountControlPanel.java
URL: 
http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.accountcontrolpanel/org.apache.clerezza.platform.accountcontrolpanel.core/src/main/java/org/apache/clerezza/platform/accountcontrolpanel/AccountControlPanel.java?rev=956251&r1=956250&r2=956251&view=diff
==============================================================================
--- 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.accountcontrolpanel/org.apache.clerezza.platform.accountcontrolpanel.core/src/main/java/org/apache/clerezza/platform/accountcontrolpanel/AccountControlPanel.java
 (original)
+++ 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.accountcontrolpanel/org.apache.clerezza.platform.accountcontrolpanel.core/src/main/java/org/apache/clerezza/platform/accountcontrolpanel/AccountControlPanel.java
 Sat Jun 19 16:19:41 2010
@@ -559,47 +559,53 @@ public class AccountControlPanel impleme
                if (newPW.trim().equals(confirmNewPW.trim()) && 
checkPWStrings(oldPW, newPW)) {
                        changedPassword = AccessController.doPrivileged(new 
PrivilegedAction<Boolean>() {
 
-                               @Override
-                               public Boolean run() {
-                                       final NonLiteral agent = getAgent(id);
-                                       // The encoded current password which 
the user typed in 
-                                       String encodedOlpPW = 
getEncodedPW(oldPW);
-                                       // The current password which is in the 
system graph
+                               private String getCurrentPassword(NonLiteral 
agent) {
                                        String currentPassword = null;
                                        Iterator<Triple> oldPWTriple = 
systemGraph.filter(agent,
                                                        
PERMISSION.passwordSha1, null);
                                        if (oldPWTriple.hasNext()) {
-                                               /*
-                                                * The Clerezza WCMS Ontologies 
expect the Object to be a
-                                                * Literal
-                                                */
                                                Literal currentPWLiteral = 
(Literal) oldPWTriple.next().getObject();
                                                currentPassword = 
currentPWLiteral.getLexicalForm();
                                        }
-                                       if 
(currentPassword.equals(encodedOlpPW)) {
-                                               removeOldPwAndAddNewPW(agent, 
currentPassword, newPW);
-                                               return true;
-                                       } else {
+                                       return currentPassword;
+                               }
+                               
+                               @Override
+                               public Boolean run() {
+                                       final NonLiteral agent = getAgent(id);
+                                       // The encoded current password which 
the user typed in 
+                                       String encodedOlpPW = 
getEncodedPW(oldPW);
+                                       // The current password which is in the 
system graph
+                                       String currentPassword = 
getCurrentPassword(agent);
+                                       if ((currentPassword != null) && 
!currentPassword.equals(encodedOlpPW)) {
                                                logger.info("Typed wrong 
current password!");
                                                return false;
+                                       } else {
+                                               removeOldPwAndAddNewPW(agent, 
currentPassword, newPW);
+                                               return true;
                                        }
                                }
 
                                private void removeOldPwAndAddNewPW(NonLiteral 
agent, String currentPassword,
                                                String newPW) {
-                                       Triple oldPWTriple = new 
TripleImpl(agent,
-                                                       
PERMISSION.passwordSha1, new PlainLiteralImpl(
-                                                       currentPassword));
                                        Triple newPWTriple = new 
TripleImpl(agent,
                                                        PERMISSION.passwordSha1,
                                                        new 
PlainLiteralImpl(getEncodedPW(newPW)));
-                                       systemGraph.remove(oldPWTriple);
-                                       logger.debug("removed old password from 
systemgraph");
+                                       if (currentPassword != null) {
+                                               Triple oldPWTriple = new 
TripleImpl(agent,
+                                                       
PERMISSION.passwordSha1, new PlainLiteralImpl(
+                                                       currentPassword));
+                                               systemGraph.remove(oldPWTriple);
+                                               logger.debug("removed old 
password from systemgraph");
+                                       }
                                        systemGraph.add(newPWTriple);
                                        logger.debug("user " + id + " changed 
password");
                                }
 
                                private String getEncodedPW(String password) {
+                                       if (password == null) {
+                                               return null;
+                                       }
                                        try {
                                                return 
bytes2HexString(MessageDigest.getInstance("SHA1").digest(
                                                                
password.getBytes("UTF-8")));
@@ -637,7 +643,7 @@ public class AccountControlPanel impleme
         * checks if the typed strings are valid
         */
        private boolean checkPWStrings(String oldPW, String newPW) {
-               if (oldPW.length() == 0 || newPW.length() == 0) {
+               if (newPW.length() == 0) {
                        return false;
                }
                return true;

Modified: 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.launcher.storageless.parent/pom.xml
URL: 
http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.launcher.storageless.parent/pom.xml?rev=956251&r1=956250&r2=956251&view=diff
==============================================================================
--- 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.launcher.storageless.parent/pom.xml
 (original)
+++ 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.launcher.storageless.parent/pom.xml
 Sat Jun 19 16:19:41 2010
@@ -109,6 +109,11 @@
                        <artifactId>httpcore-osgi</artifactId>
                        <scope>runtime</scope>
                </dependency>
+               <dependency>
+                       <groupId>org.jsslutils</groupId>
+                       <artifactId>jsslutils</artifactId>
+                       <scope>runtime</scope>
+               </dependency>
 
                <!--
                        Clerezza Bundles
@@ -265,6 +270,16 @@
                </dependency>
                <dependency>
                        <groupId>org.apache.clerezza</groupId>
+                       
<artifactId>org.apache.clerezza.platform.security.foafssl.core</artifactId>
+                       <scope>runtime</scope>
+               </dependency>
+               <dependency>
+                       <groupId>org.apache.clerezza</groupId>
+                       
<artifactId>org.apache.clerezza.platform.security.foafssl.ontologies</artifactId>
+                       <scope>runtime</scope>
+               </dependency>
+               <dependency>
+                       <groupId>org.apache.clerezza</groupId>
                        
<artifactId>org.apache.clerezza.platform.security.auth.basic</artifactId>
                        <scope>runtime</scope>
                </dependency>

Modified: 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.security.foafssl/core/pom.xml
URL: 
http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.security.foafssl/core/pom.xml?rev=956251&r1=956215&r2=956251&view=diff
==============================================================================
--- 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.security.foafssl/core/pom.xml
 (original)
+++ 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.security.foafssl/core/pom.xml
 Sat Jun 19 16:19:41 2010
@@ -2,14 +2,14 @@
        <modelVersion>4.0.0</modelVersion>
        <parent>
                <groupId>org.apache.clerezza</groupId>
-               <artifactId>org.apache.clerezza.foafssl</artifactId>
-               <version>0.1-SNAPSHOT</version>
+               
<artifactId>org.apache.clerezza.platform.security.foafssl</artifactId>
+               <version>0.1-incubating-SNAPSHOT</version>
        </parent>
        <groupId>org.apache.clerezza</groupId>
-       <artifactId>org.apache.clerezza.foafssl.core</artifactId>
-       <version>0.1-SNAPSHOT</version>
+       
<artifactId>org.apache.clerezza.platform.security.foafssl.core</artifactId>
+       <version>0.1-incubating-SNAPSHOT</version>
        <packaging>bundle</packaging>
-       <name>Clerezza - foaf+ssl Core</name>
+       <name>Clerezza - Platform Security foaf+ssl Core</name>
        <description>
                Foaf + Ssl Core
        </description>
@@ -17,8 +17,7 @@
        <dependencies>
                <dependency>
                        <groupId>org.apache.clerezza</groupId>
-                       
<artifactId>org.apache.clerezza.foafssl.ontologies</artifactId>
-                       <version>0.1-SNAPSHOT</version>
+                       
<artifactId>org.apache.clerezza.platform.security.foafssl.ontologies</artifactId>
                </dependency>
                <dependency>
                        <groupId>org.apache.clerezza</groupId>
@@ -52,12 +51,10 @@
                <dependency>
                        <groupId>org.jsslutils</groupId>
                        <artifactId>jsslutils</artifactId>
-                       <version>1.0.5</version>
                </dependency>
                <dependency>
                        <groupId>org.wymiwyg</groupId>
                        <artifactId>jetty-osgi-httpservice</artifactId>
-                       <version>0.1</version>
                </dependency>
                <dependency>
                        <groupId>junit</groupId>
@@ -100,7 +97,8 @@
                                <configuration>
                                        <instructions>
                                                
<Service-Component>OSGI-INF/serviceComponents.xml</Service-Component>
-                                               
<Export-Package>org.apache.clerezza.foafssl.*</Export-Package>
+                                               
<Export-Package>!org.apache.clerezza.foafssl.ontologies,
+                                                               
org.apache.clerezza.foafssl.*</Export-Package>
                                                
<Bundle-SymbolicName>org.apache.clerezza.foafssl</Bundle-SymbolicName>
                                        </instructions>
                                </configuration>

Copied: 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.security.foafssl/core/src/main/scala/org/apache/clerezza/foafssl/Utilities.scala
 (from r956215, 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.foafssl/core/src/main/scala/org/apache/clerezza/foafssl/CertUtilities.scala)
URL: 
http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.security.foafssl/core/src/main/scala/org/apache/clerezza/foafssl/Utilities.scala?p2=incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.security.foafssl/core/src/main/scala/org/apache/clerezza/foafssl/Utilities.scala&p1=incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.foafssl/core/src/main/scala/org/apache/clerezza/foafssl/CertUtilities.scala&r1=956215&r2=956251&rev=956251&view=diff
==============================================================================
--- 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.foafssl/core/src/main/scala/org/apache/clerezza/foafssl/CertUtilities.scala
 (original)
+++ 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.security.foafssl/core/src/main/scala/org/apache/clerezza/foafssl/Utilities.scala
 Sat Jun 19 16:19:41 2010
@@ -27,7 +27,7 @@ import org.apache.clerezza.rdf.core.UriR
  *
  * @author Reto Bachmann-Gmür, Henry Story
  */
-object CertUtilities {
+object Utilities {
        
        /**
         * same as getClaimedWebIds(chain(0))
@@ -72,5 +72,9 @@ object CertUtilities {
                }
                return result
        }
+       
+       def cretateUsernameForWebId(webId: UriRef) = {
+               webId.getUnicodeString.replace(":", "");
+       } 
 
 }
\ No newline at end of file

Modified: 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.security.foafssl/core/src/main/scala/org/apache/clerezza/foafssl/WebDescriptionProvider.scala
URL: 
http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.security.foafssl/core/src/main/scala/org/apache/clerezza/foafssl/WebDescriptionProvider.scala?rev=956251&r1=956215&r2=956251&view=diff
==============================================================================
--- 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.security.foafssl/core/src/main/scala/org/apache/clerezza/foafssl/WebDescriptionProvider.scala
 (original)
+++ 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.security.foafssl/core/src/main/scala/org/apache/clerezza/foafssl/WebDescriptionProvider.scala
 Sat Jun 19 16:19:41 2010
@@ -26,6 +26,7 @@ import org.apache.clerezza.rdf.core.UriR
 import org.apache.clerezza.rdf.core.access.NoSuchEntityException
 import org.apache.clerezza.rdf.core.access.TcManager
 import org.apache.clerezza.rdf.core.serializedform.Parser
+import org.apache.clerezza.rdf.core.serializedform.SupportedFormat
 import org.apache.clerezza.rdf.utils.GraphNode
 import org.apache.clerezza.rdf.utils.UnionMGraph
 import org.osgi.service.component.ComponentContext
@@ -71,7 +72,16 @@ class WebDescriptionProvider {
        lazy val acceptHeader = {
                import scala.collection.JavaConversions._
                (for (f <- parser.getSupportedFormats) yield {
-                                       f+"; q=1.0,"
+                               val qualityOfFormat = {
+                                       f match {
+                                               //the default format
+                                               case SupportedFormat.RDF_XML => 
"1.0";
+                                               //n3 is a bit less well defined 
and/or many parsers supports only subsets
+                                               case SupportedFormat.N3 => 
"0.5";
+                                               case _ => "0.8";
+                                       }
+                               }
+                               f+"; q="+qualityOfFormat+","
                }).mkString +" *; q=.1"
        }
        

Modified: 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.security.foafssl/core/src/main/scala/org/apache/clerezza/foafssl/auth/FoafSslAuthentication.scala
URL: 
http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.security.foafssl/core/src/main/scala/org/apache/clerezza/foafssl/auth/FoafSslAuthentication.scala?rev=956251&r1=956215&r2=956251&view=diff
==============================================================================
--- 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.security.foafssl/core/src/main/scala/org/apache/clerezza/foafssl/auth/FoafSslAuthentication.scala
 (original)
+++ 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.security.foafssl/core/src/main/scala/org/apache/clerezza/foafssl/auth/FoafSslAuthentication.scala
 Sat Jun 19 16:19:41 2010
@@ -19,7 +19,7 @@
 
 package org.apache.clerezza.foafssl.auth
 
-import org.apache.clerezza.foafssl.CertUtilities
+import org.apache.clerezza.foafssl.Utilities
 import org.apache.clerezza.foafssl.WebDescriptionProvider
 import org.apache.clerezza.platform.security.auth._
 import org.apache.clerezza.rdf.core._
@@ -49,8 +49,8 @@ class FoafSslAuthentication extends Weig
                if ((certificates == null) || (certificates.length == 0)) {
                        return null
                } else {
-                       val webIdUriRefs = 
CertUtilities.getClaimedWebIds(certificates)
-                       webIdUriRefs(0).getUnicodeString
+                       val webIdUriRefs = 
Utilities.getClaimedWebIds(certificates)
+                       Utilities.cretateUsernameForWebId(webIdUriRefs(0))
                }
        }
 

Modified: 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.security.foafssl/core/src/main/scala/org/apache/clerezza/foafssl/ssl/X509TrustManagerWrapperService.scala
URL: 
http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.security.foafssl/core/src/main/scala/org/apache/clerezza/foafssl/ssl/X509TrustManagerWrapperService.scala?rev=956251&r1=956215&r2=956251&view=diff
==============================================================================
--- 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.security.foafssl/core/src/main/scala/org/apache/clerezza/foafssl/ssl/X509TrustManagerWrapperService.scala
 (original)
+++ 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.security.foafssl/core/src/main/scala/org/apache/clerezza/foafssl/ssl/X509TrustManagerWrapperService.scala
 Sat Jun 19 16:19:41 2010
@@ -24,7 +24,7 @@ import java.security.cert.CertificateExc
 import java.security.cert.X509Certificate
 import java.security.interfaces.RSAPublicKey
 import javax.net.ssl.X509TrustManager;
-import org.apache.clerezza.foafssl.CertUtilities
+import org.apache.clerezza.foafssl.Utilities
 import org.apache.clerezza.foafssl.WebDescriptionProvider
 import org.apache.clerezza.foafssl.ontologies.CERT
 import org.apache.clerezza.foafssl.ontologies.RSA
@@ -74,7 +74,7 @@ class X509TrustManagerWrapperService() e
                new TrustAllClientsWrappingTrustManager(
                        trustManager) {
                        override def checkClientTrusted(chain: 
Array[X509Certificate], authType: String): Unit = {
-                               val webIdUriRefs = 
CertUtilities.getClaimedWebIds(chain)
+                               val webIdUriRefs = 
Utilities.getClaimedWebIds(chain)
                                if (webIdUriRefs.length == 0) {
                                        trustManager.checkClientTrusted(chain, 
authType)
                                } else {
@@ -104,12 +104,10 @@ class X509TrustManagerWrapperService() e
        }
        
        def createSystemUserDescription(webDescription: GraphNode) = {
-               val result = new SimpleMGraph(webDescription.getNodeContext)
-               //TODO remove at leaf platform usernames
+               val result = new SimpleMGraph()
                val webId = webDescription.getNode.asInstanceOf[UriRef]
                result.add(new TripleImpl(webId, PLATFORM.userName, 
-                                                                               
                                        new 
PlainLiteralImpl(webId.getUnicodeString)))
-                                                                               
                                        
//LiteralFactory.getInstance.createTypedLiteral(webId.getUnicodeString)))
+                                                                               
                                        new 
PlainLiteralImpl(Utilities.cretateUsernameForWebId(webId))))
                result.add(new TripleImpl(webId, RDF.`type` , 
                                                                                
                                        FOAF.Agent))
                result

Modified: 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.security.foafssl/ontologies/pom.xml
URL: 
http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.security.foafssl/ontologies/pom.xml?rev=956251&r1=956215&r2=956251&view=diff
==============================================================================
--- 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.security.foafssl/ontologies/pom.xml
 (original)
+++ 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.security.foafssl/ontologies/pom.xml
 Sat Jun 19 16:19:41 2010
@@ -2,14 +2,14 @@
        <modelVersion>4.0.0</modelVersion>
        <parent>
                <groupId>org.apache.clerezza</groupId>
-               <artifactId>org.apache.clerezza.foafssl</artifactId>
-               <version>0.1-SNAPSHOT</version>
+               
<artifactId>org.apache.clerezza.platform.security.foafssl</artifactId>
+               <version>0.1-incubating-SNAPSHOT</version>
        </parent>
        <groupId>org.apache.clerezza</groupId>
-       <artifactId>org.apache.clerezza.foafssl.ontologies</artifactId>
-       <version>0.1-SNAPSHOT</version>
+       
<artifactId>org.apache.clerezza.platform.security.foafssl.ontologies</artifactId>
+       <version>0.1-incubating-SNAPSHOT</version>
        <packaging>bundle</packaging>
-       <name>Clerezza - foafssl Ontologies</name>
+       <name>CClerezza - Platform Security foaf+ssl Ontologies</name>
        <description>
                Fafo + Ssl Ontologies
        </description>

Modified: 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.security.foafssl/pom.xml
URL: 
http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.security.foafssl/pom.xml?rev=956251&r1=956215&r2=956251&view=diff
==============================================================================
--- 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.security.foafssl/pom.xml
 (original)
+++ 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.security.foafssl/pom.xml
 Sat Jun 19 16:19:41 2010
@@ -6,10 +6,10 @@
                <version>0.2-incubating-SNAPSHOT</version>
        </parent>
        <groupId>org.apache.clerezza</groupId>
-       <artifactId>org.apache.clerezza.foafssl</artifactId>
+       <artifactId>org.apache.clerezza.platform.security.foafssl</artifactId>
        <packaging>pom</packaging>
-       <version>0.1-SNAPSHOT</version>
-       <name>Clerezza - foaf+ssl</name>
+       <version>0.1-incubating-SNAPSHOT</version>
+       <name>Clerezza - Platform Security foaf+ssl</name>
        <modules>
                <module>ontologies</module>
                <module>core</module>

Added: 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.security/src/main/java/org/apache/clerezza/platform/security/SecurityActivator.java
URL: 
http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.security/src/main/java/org/apache/clerezza/platform/security/SecurityActivator.java?rev=956251&view=auto
==============================================================================
--- 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.security/src/main/java/org/apache/clerezza/platform/security/SecurityActivator.java
 (added)
+++ 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.security/src/main/java/org/apache/clerezza/platform/security/SecurityActivator.java
 Sat Jun 19 16:19:41 2010
@@ -0,0 +1,76 @@
+/*
+ *  Copyright 2010 reto.
+ * 
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ * 
+ *       http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ *  under the License.
+ */
+package org.apache.clerezza.platform.security;
+
+import java.security.PermissionCollection;
+import java.security.Permissions;
+import java.security.Policy;
+import java.security.Principal;
+import java.security.ProtectionDomain;
+import org.apache.felix.scr.annotations.Component;
+import org.apache.felix.scr.annotations.Reference;
+import org.apache.felix.scr.annotations.ReferenceCardinality;
+import org.apache.felix.scr.annotations.ReferencePolicy;
+import org.osgi.service.component.ComponentContext;
+
+/**
+ * A component with no required dependency ensuring that the UserAwarePolicy 
is 
+ * activated if available or otherwise a restrictive default policy is set
+ * 
+ * @author reto
+ */
+...@component
+...@reference(cardinality = ReferenceCardinality.OPTIONAL_UNARY,
+name = "userAwarePolicy",
+policy = ReferencePolicy.DYNAMIC,
+referenceInterface = UserAwarePolicy.class)
+public class SecurityActivator {
+
+       private Policy originalPolicy;
+       private Policy fallBackPolicy = new Policy() {
+
+               @Override
+               public PermissionCollection getPermissions(final 
ProtectionDomain domain) {
+
+                       PermissionCollection result;
+
+                       Principal[] principals = domain.getPrincipals();
+                       if (principals.length > 0) {
+                               result = new Permissions();
+                       } else {
+                               result = originalPolicy.getPermissions(domain);
+                       }
+                       return result;
+               }
+       };
+
+       protected void activate(final ComponentContext context) throws 
Exception {
+               originalPolicy = Policy.getPolicy();
+       }
+
+       protected void deactivate(final ComponentContext context) throws 
Exception {
+               Policy.setPolicy(originalPolicy);
+       }
+
+       protected void bindUserAwarePolicy(UserAwarePolicy userAwarePolicy) {
+               Policy.setPolicy(userAwarePolicy);
+       }
+
+       protected void unbindUserAwarePolicy(UserAwarePolicy userAwarePolicy) {
+               Policy.setPolicy(fallBackPolicy);
+       }
+}

Modified: incubator/clerezza/trunk/org.apache.clerezza.parent/pom.xml
URL: 
http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/pom.xml?rev=956251&r1=956250&r2=956251&view=diff
==============================================================================
--- incubator/clerezza/trunk/org.apache.clerezza.parent/pom.xml (original)
+++ incubator/clerezza/trunk/org.apache.clerezza.parent/pom.xml Sat Jun 19 
16:19:41 2010
@@ -59,6 +59,7 @@
                
<module>org.apache.clerezza.platform.scripting.scriptmanager</module>
                
<module>org.apache.clerezza.platform.security.auth.basic</module>
                
<module>org.apache.clerezza.platform.security.auth.cookie</module>
+               <module>org.apache.clerezza.platform.security.foafssl</module>
                
<module>org.apache.clerezza.platform.security.conditions</module>
                <module>org.apache.clerezza.platform.security</module>
                <module>org.apache.clerezza.platform.testing</module>
@@ -480,7 +481,7 @@
                                <groupId>org.ops4j.pax.runner</groupId>
                                <artifactId>pax-runner-no-jcl</artifactId>
                                <version>1.4.0</version>
-                   </dependency>
+                       </dependency>
                        <dependency>
                                <groupId>org.ops4j.pax.exam</groupId>
                                <artifactId>pax-exam-junit</artifactId>
@@ -692,19 +693,19 @@
                                <version>0.4-incubating-SNAPSHOT</version>
                        </dependency>
                        <dependency>
-                                       
<groupId>org.apache.clerezza.scala</groupId>
-                                       
<artifactId>scala-library-osgi</artifactId>
-                                       
<version>0.1-incubating-SNAPSHOT</version>
+                               <groupId>org.apache.clerezza.scala</groupId>
+                               <artifactId>scala-library-osgi</artifactId>
+                               <version>0.1-incubating-SNAPSHOT</version>
                        </dependency>
                        <dependency>
-                                       
<groupId>org.apache.clerezza.scala</groupId>
-                                       
<artifactId>scala-compiler-osgi</artifactId>
-                                       
<version>0.1-incubating-SNAPSHOT</version>
+                               <groupId>org.apache.clerezza.scala</groupId>
+                               <artifactId>scala-compiler-osgi</artifactId>
+                               <version>0.1-incubating-SNAPSHOT</version>
                        </dependency>
                        <dependency>
-                                       
<groupId>org.apache.clerezza.scala</groupId>
-                                       <artifactId>script-engine</artifactId>
-                                       
<version>0.1-incubating-SNAPSHOT</version>
+                               <groupId>org.apache.clerezza.scala</groupId>
+                               <artifactId>script-engine</artifactId>
+                               <version>0.1-incubating-SNAPSHOT</version>
                        </dependency>
                        <dependency>
                                <groupId>org.apache.clerezza</groupId>
@@ -792,6 +793,26 @@
                                <version>0.8-incubating-SNAPSHOT</version>
                        </dependency>
                        <dependency>
+                               <groupId>org.apache.clerezza</groupId>
+                               
<artifactId>org.apache.clerezza.platform.security.foafssl.core</artifactId>
+                               <version>0.1-incubating-SNAPSHOT</version>
+                       </dependency>
+                       <dependency>
+                               <groupId>org.apache.clerezza</groupId>
+                               
<artifactId>org.apache.clerezza.platform.security.foafssl.ontologies</artifactId>
+                               <version>0.1-incubating-SNAPSHOT</version>
+                       </dependency>
+                       <dependency>
+                               <groupId>org.jsslutils</groupId>
+                               <artifactId>jsslutils</artifactId>
+                               <version>1.0.5</version>
+                       </dependency>
+                       <dependency>
+                               <groupId>org.wymiwyg</groupId>
+                               <artifactId>jetty-osgi-httpservice</artifactId>
+                               <version>0.1</version>
+                       </dependency>
+                       <dependency>
                                <groupId>org.wymiwyg</groupId>
                                <artifactId>wrhapi</artifactId>
                                <version>0.9</version>


Reply via email to