Changeset 1544
- Timestamp:
- 2010-06-07 07:03:25 (3 years ago)
- Location:
- trunk
- Files:
-
- 1 added
- 13 edited
-
core/kauri-runtime-rapi/src/main/java/org/kauriproject/runtime/rapi/FilterFactory.java (modified) (1 diff)
-
core/kauri-runtime-rapi/src/main/java/org/kauriproject/runtime/rapi/KauriModule.java (modified) (3 diffs)
-
core/kauri-runtime/src/main/java/org/kauriproject/runtime/module/restservice/RestserviceFacet.java (modified) (2 diffs)
-
core/kauri-runtime/src/main/java/org/kauriproject/runtime/rapi_impl/KauriModuleImpl.java (modified) (1 diff)
-
modules/kauri-i18n/kauri-i18n-impl/src/main/java/org/kauriproject/i18n/impl/I18nFilterFactory.java (modified) (2 diffs)
-
modules/kauri-locale-assignment/src/main/java/org/kauriproject/i18n/locale_assignment/LocaleAssigner.java (modified) (2 diffs)
-
modules/kauri-representation/kauri-representationbuilder-impl/src/main/java/org/kauriproject/representation/build/impl/RepresentationFilterFactory.java (modified) (3 diffs)
-
modules/kauri-representation/kauri-representationbuilder-impl/src/test/java/org/kauriproject/representation/test/BuilderTest.java (modified) (1 diff)
-
modules/kauri-security/kauri-security-impl/pom.xml (modified) (1 diff)
-
modules/kauri-security/kauri-security-impl/src/main/java/org/kauriproject/security/infrastructure/SecuritySetup.java (modified) (1 diff)
-
samples/kauri-security-sample/conf/security/auth.xml (modified) (1 diff)
-
samples/kauri-security-sample/src/main/java/org/kauriproject/samples/security/RoleSensitiveJaxRsResource.java (modified) (3 diffs)
-
samples/kauri-security-sample/src/main/kauri/pages/index.html.xml (modified) (1 diff)
-
samples/kauri-security-sample/src/main/kauri/templates/securetemplate.xml (added)
Legend:
- Unmodified
- Added
- Removed
-
trunk/core/kauri-runtime-rapi/src/main/java/org/kauriproject/runtime/rapi/FilterFactory.java
r1327 r1544 19 19 20 20 public interface FilterFactory { 21 String getID(); 21 22 Filter createFilter(); 22 23 } -
trunk/core/kauri-runtime-rapi/src/main/java/org/kauriproject/runtime/rapi/KauriModule.java
r1523 r1544 16 16 package org.kauriproject.runtime.rapi; 17 17 18 import java.util.List; 19 20 import org.restlet.Application; 21 import org.restlet.Context; 22 import org.restlet.Request; 18 23 import org.restlet.Response; 19 import org.restlet.Request;20 import org.restlet.Context;21 import org.restlet.Application;22 24 import org.springframework.context.ApplicationContext; 23 24 import java.util.List;25 25 26 26 public interface KauriModule { … … 84 84 */ 85 85 void addFilter(FilterFactory filterFactory); 86 87 /** 88 * Duplicates the first occurence of the specified filter (if one is already registered). 89 */ 90 void duplicateFilter(String filterFactoryID); 86 91 87 92 /** … … 89 94 */ 90 95 void addRootFilter(FilterFactory filterFactory); 91 96 92 97 Context getRestletContext(); 93 98 -
trunk/core/kauri-runtime/src/main/java/org/kauriproject/runtime/module/restservice/RestserviceFacet.java
r1523 r1544 20 20 import java.util.Date; 21 21 import java.util.HashMap; 22 import java.util.Iterator; 22 23 import java.util.List; 23 24 import java.util.Map; … … 231 232 public synchronized void addRestserviceFilter(FilterFactory filterFactory) { 232 233 this.restserviceFilterFactories.add(filterFactory); 233 234 234 for (RestserviceRegistryEntry entry : restserviceRegistry.values()) { 235 235 FilterChain filterChain = entry.getHandle().getFilterChain(); 236 236 if (filterChain != null) 237 237 filterChain.rebuild(restserviceFilterFactories); 238 } 239 } 240 241 /** 242 * Duplicates an already registered filter which will be executed before delegating a call to a restservice. 243 * If multiple occurences of this filter are registered (e.g. with different configurations), only the first one 244 * is duplicated. 245 */ 246 public synchronized void duplicateFilter(final String filterFactoryID) { 247 FilterFactory duplicate = null; 248 Iterator<FilterFactory> iter = this.restserviceFilterFactories.iterator(); 249 while(iter.hasNext()) { 250 FilterFactory factory = iter.next(); 251 // skip last factory, no use in duplicating the last entry 252 if(iter.hasNext() && factory.getID().equals(filterFactoryID)) { 253 duplicate = factory; 254 break; 255 } 256 } 257 if(duplicate != null) { 258 this.addRestserviceFilter(duplicate); 238 259 } 239 260 } -
trunk/core/kauri-runtime/src/main/java/org/kauriproject/runtime/rapi_impl/KauriModuleImpl.java
r1523 r1544 102 102 module.getRestserviceFacet().addRestserviceFilter(filterFactory); 103 103 } 104 105 public void duplicateFilter(String filterFactoryID) { 106 module.getRestserviceFacet().duplicateFilter(filterFactoryID); 107 } 104 108 105 109 public void addRootFilter(FilterFactory filterFactory) { -
trunk/modules/kauri-i18n/kauri-i18n-impl/src/main/java/org/kauriproject/i18n/impl/I18nFilterFactory.java
r1526 r1544 24 24 25 25 public class I18nFilterFactory implements FilterFactory { 26 27 public static final String ID = "org.kauriproject.i18n.impl.I18nFilterFactory"; 28 26 29 private I18nManager i18nManager; 27 30 … … 30 33 } 31 34 35 public String getID() { 36 return ID; 37 } 38 32 39 public Filter createFilter() { 33 40 return new I18nFilter(); 34 41 } 35 42 36 43 private class I18nFilter extends Filter { 37 44 @Override -
trunk/modules/kauri-locale-assignment/src/main/java/org/kauriproject/i18n/locale_assignment/LocaleAssigner.java
r1407 r1544 57 57 58 58 private static class LocaleAssignmentFilterFactory implements FilterFactory { 59 public static final String ID = "org.kauriproject.i18n.locale_assignment.LocaleAssignmentFilterFactory"; 59 60 60 61 private boolean ignoreClientInfo; … … 70 71 return new LocaleAssignmentFilter(ignoreClientInfo, defaultLocale, defaultTimeZoneId); 71 72 } 73 74 public String getID() { 75 return ID; 76 } 72 77 } 73 78 -
trunk/modules/kauri-representation/kauri-representationbuilder-impl/src/main/java/org/kauriproject/representation/build/impl/RepresentationFilterFactory.java
r1537 r1544 54 54 */ 55 55 public class RepresentationFilterFactory implements FilterFactory { 56 57 public static final String ID = "org.kauriproject.representation.build.impl.RepresentationFilterFactory"; 58 56 59 RepresentationResolver resolver; 57 60 … … 59 62 this.resolver = resolver; 60 63 } 61 64 65 public String getID() { 66 return ID; 67 } 68 62 69 public Filter createFilter() { 63 70 return new RepresentationFilter(resolver); … … 100 107 if (throwable == null) { 101 108 Representation representation = response.getEntity(); 109 102 110 String media = getMedia(request); 103 111 if (response.getStatus() != null && response.getStatus().isError() && -
trunk/modules/kauri-representation/kauri-representationbuilder-impl/src/test/java/org/kauriproject/representation/test/BuilderTest.java
r1526 r1544 100 100 public void addFilter(FilterFactory filterFactory) { 101 101 } 102 103 public void duplicateFilter(String filterFactoryID) { 104 } 102 105 103 106 public void addRootFilter(FilterFactory filterFactory) { 104 107 } 105 108 106 109 public Context getRestletContext() { 107 110 return restletContext; -
trunk/modules/kauri-security/kauri-security-impl/pom.xml
r1522 r1544 30 30 <artifactId>kauri-restlet-util</artifactId> 31 31 </dependency> 32 <dependency>33 <groupId>org.restlet.jse</groupId>34 <artifactId>org.restlet.ext.crypto</artifactId>35 </dependency>32 <dependency> 33 <groupId>org.restlet.jse</groupId> 34 <artifactId>org.restlet.ext.crypto</artifactId> 35 </dependency> 36 36 <dependency> 37 37 <groupId>commons-logging</groupId> -
trunk/modules/kauri-security/kauri-security-impl/src/main/java/org/kauriproject/security/infrastructure/SecuritySetup.java
r1533 r1544 39 39 return new SecurityFilter(module.getRestletContext(), module, finalRealms); 40 40 } 41 public String getID() { 42 return "org.kauriproject.security.infrastructure.FilterFactory"; 43 } 41 44 }; 45 46 // add SecurityFilter 42 47 module.addFilter(ff); 48 49 // Ensure that the RepresentationFilter is also executed (when representations are active) before 50 // the SecurityFilter clears the SecurityContext. 51 // Note: keep argument below in sync with RepresentationFilterFactory.ID ! 52 module.duplicateFilter("org.kauriproject.representation.build.impl.RepresentationFilterFactory"); 43 53 } 44 54 } -
trunk/samples/kauri-security-sample/conf/security/auth.xml
r1139 r1544 41 41 <!-- example of regex path matching --> 42 42 <protect path="/roleSensitive(JaxRs)?Resource" type="regex" access="ROLE_USER,ROLE_ADMIN"/> 43 <protect path="/roleSensitiveJaxRsResource/representation" access="ROLE_USER,ROLE_ADMIN"/> 43 44 <protect path="/securepage.html" access="ROLE_USER,ROLE_ADMIN"/> 44 45 <protect path="/authenticated.html" access="IS_AUTHENTICATED_REMEMBERED"/> -
trunk/samples/kauri-security-sample/src/main/java/org/kauriproject/samples/security/RoleSensitiveJaxRsResource.java
r1107 r1544 1 1 package org.kauriproject.samples.security; 2 3 import java.util.HashMap; 2 4 3 5 import javax.ws.rs.Path; … … 6 8 import javax.ws.rs.core.SecurityContext; 7 9 import javax.ws.rs.core.Context; 10 11 import org.kauriproject.representation.build.KauriRepresentation; 8 12 9 13 @Path("roleSensitiveJaxRsResource") … … 24 28 } 25 29 } 30 31 @GET 32 @Path("representation") 33 public KauriRepresentation getRepresentation() { 34 return new KauriRepresentation("securetemplate", new HashMap<String, Object>()); 35 } 26 36 27 37 } -
trunk/samples/kauri-security-sample/src/main/kauri/pages/index.html.xml
r1139 r1544 53 53 on what role you have</a></li> 54 54 <li><a href="securepage.html">Template using the <t:protect> instruction.</a></li> 55 <li><a href="roleSensitiveJaxRsResource/representation">Template using the <t:protect> instruction called by the representation builder.</a></li> 55 56 <li><a href="authenticated.html">Page accessible by everyone (having any role), as long as you're 56 57 authenticated.</a></li>
Note: See TracChangeset
for help on using the changeset viewer.