diff --git a/.gitignore b/.gitignore index e69de29..361cca7 100644 --- a/.gitignore +++ b/.gitignore @@ -0,0 +1,3 @@ +/acegisecurity-1.0.7.tar.gz +/acegi-security-1.0.7.pom +/LICENSE-2.0.txt diff --git a/0001-Remove-unmappable-characters.patch b/0001-Remove-unmappable-characters.patch new file mode 100644 index 0000000..eeeb922 --- /dev/null +++ b/0001-Remove-unmappable-characters.patch @@ -0,0 +1,24 @@ +From 0234e5545f5d4c3fe8ae9f266f6df279df3c0cfc Mon Sep 17 00:00:00 2001 +From: Michal Srb +Date: Mon, 24 Mar 2014 12:49:08 +0100 +Subject: [PATCH] Remove unmappable characters + +--- + src/main/java/org/acegisecurity/captcha/CaptchaEntryPoint.java | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/src/main/java/org/acegisecurity/captcha/CaptchaEntryPoint.java b/src/main/java/org/acegisecurity/captcha/CaptchaEntryPoint.java +index faf45c9..45d1135 100644 +--- a/src/main/java/org/acegisecurity/captcha/CaptchaEntryPoint.java ++++ b/src/main/java/org/acegisecurity/captcha/CaptchaEntryPoint.java +@@ -122,7 +122,6 @@ public class CaptchaEntryPoint implements ChannelEntryPoint, InitializingBean { + Assert.hasLength(urlEncodingCharset, "urlEncodingCharset must be specified"); + Assert.notNull(portMapper, "portMapper must be specified"); + Assert.notNull(portResolver, "portResolver must be specified"); +- URLEncoder.encode(" fzaef �& � ", urlEncodingCharset); + } + + private void buildInternalRedirect(StringBuffer redirectUrl, HttpServletRequest req) { +-- +1.8.5.3 + diff --git a/0001-Stubs-for-Spring-Framework-2.patch b/0001-Stubs-for-Spring-Framework-2.patch new file mode 100644 index 0000000..2aa125f --- /dev/null +++ b/0001-Stubs-for-Spring-Framework-2.patch @@ -0,0 +1,118 @@ +From 62fd3a0b49b6943089403c3c3fe7ec4b3b20672f Mon Sep 17 00:00:00 2001 +From: Michal Srb +Date: Mon, 24 Mar 2014 13:12:06 +0100 +Subject: [PATCH] Stubs for Spring Framework 2 + +--- + .../org/springframework/metadata/Attributes.java | 20 ++++++ + .../org/springframework/web/bind/RequestUtils.java | 71 ++++++++++++++++++++++ + 2 files changed, 91 insertions(+) + create mode 100644 src/main/java/org/springframework/metadata/Attributes.java + create mode 100644 src/main/java/org/springframework/web/bind/RequestUtils.java + +diff --git a/src/main/java/org/springframework/metadata/Attributes.java b/src/main/java/org/springframework/metadata/Attributes.java +new file mode 100644 +index 0000000..de5c38e +--- /dev/null ++++ b/src/main/java/org/springframework/metadata/Attributes.java +@@ -0,0 +1,20 @@ ++package org.springframework.metadata; ++ ++import java.lang.reflect.Field; ++import java.lang.reflect.Method; ++import java.util.Collection; ++ ++public interface Attributes { ++ ++ Collection getAttributes(Class targetClass); ++ ++ Collection getAttributes(Class targetClass, Class filter); ++ ++ Collection getAttributes(Method targetMethod); ++ ++ Collection getAttributes(Method targetMethod, Class filter); ++ ++ Collection getAttributes(Field targetField); ++ ++ Collection getAttributes(Field targetField, Class filter); ++} +diff --git a/src/main/java/org/springframework/web/bind/RequestUtils.java b/src/main/java/org/springframework/web/bind/RequestUtils.java +new file mode 100644 +index 0000000..3162e54 +--- /dev/null ++++ b/src/main/java/org/springframework/web/bind/RequestUtils.java +@@ -0,0 +1,71 @@ ++package org.springframework.web.bind; ++ ++import javax.servlet.ServletException; ++import javax.servlet.http.HttpServletRequest; ++ ++import org.springframework.web.HttpRequestMethodNotSupportedException; ++ ++public abstract class RequestUtils { ++ ++ public static void rejectRequestMethod(HttpServletRequest request, String method) throws ServletException {} ++ ++ public static Integer getIntParameter(HttpServletRequest request, String name) throws ServletRequestBindingException {return null;} ++ ++ public static int getIntParameter(HttpServletRequest request, String name, int defaultVal) {return 0;} ++ ++ public static int[] getIntParameters(HttpServletRequest request, String name) {return null;} ++ ++ public static int getRequiredIntParameter(HttpServletRequest request, String name) throws ServletRequestBindingException {return 0;} ++ ++ public static int[] getRequiredIntParameters(HttpServletRequest request, String name) throws ServletRequestBindingException {return null;} ++ ++ public static Long getLongParameter(HttpServletRequest request, String name) throws ServletRequestBindingException {return null;} ++ ++ public static long getLongParameter(HttpServletRequest request, String name, long defaultVal) {return 0;} ++ ++ public static long[] getLongParameters(HttpServletRequest request, String name) {return null;} ++ ++ public static long getRequiredLongParameter(HttpServletRequest request, String name) throws ServletRequestBindingException {return 0;} ++ ++ public static long[] getRequiredLongParameters(HttpServletRequest request, String name) throws ServletRequestBindingException {return null;} ++ ++ public static Float getFloatParameter(HttpServletRequest request, String name) throws ServletRequestBindingException {return null;} ++ ++ public static float getFloatParameter(HttpServletRequest request, String name, float defaultVal) {return 0.0f;} ++ ++ public static float[] getFloatParameters(HttpServletRequest request, String name) {return null;} ++ ++ public static float getRequiredFloatParameter(HttpServletRequest request, String name) throws ServletRequestBindingException {return 0.0f;} ++ ++ public static float[] getRequiredFloatParameters(HttpServletRequest request, String name) throws ServletRequestBindingException {return null;} ++ ++ public static Double getDoubleParameter(HttpServletRequest request, String name) throws ServletRequestBindingException {return null;} ++ ++ public static double getDoubleParameter(HttpServletRequest request, String name, double defaultVal) {return 0.0;} ++ ++ public static double[] getDoubleParameters(HttpServletRequest request, String name) {return null;} ++ ++ public static double getRequiredDoubleParameter(HttpServletRequest request, String name) throws ServletRequestBindingException {return 0.0;} ++ ++ public static double[] getRequiredDoubleParameters(HttpServletRequest request, String name) throws ServletRequestBindingException {return null;} ++ ++ public static Boolean getBooleanParameter(HttpServletRequest request, String name) throws ServletRequestBindingException {return null;} ++ ++ public static boolean getBooleanParameter(HttpServletRequest request, String name, boolean defaultVal) {return false;} ++ ++ public static boolean[] getBooleanParameters(HttpServletRequest request, String name) {return null;} ++ ++ public static boolean getRequiredBooleanParameter(HttpServletRequest request, String name) throws ServletRequestBindingException {return false;} ++ ++ public static boolean[] getRequiredBooleanParameters(HttpServletRequest request, String name) throws ServletRequestBindingException {return null;} ++ ++ public static String getStringParameter(HttpServletRequest request, String name) throws ServletRequestBindingException {return null;} ++ ++ public static String getStringParameter(HttpServletRequest request, String name, String defaultVal) {return null;} ++ ++ public static String[] getStringParameters(HttpServletRequest request, String name) {return null;} ++ ++ public static String getRequiredStringParameter(HttpServletRequest request, String name) throws ServletRequestBindingException {return null;} ++ ++ public static String[] getRequiredStringParameters(HttpServletRequest request, String name) throws ServletRequestBindingException {return null;} ++} +-- +1.8.5.3 + diff --git a/0001-Stubs-for-casclient.patch b/0001-Stubs-for-casclient.patch new file mode 100644 index 0000000..6a4e809 --- /dev/null +++ b/0001-Stubs-for-casclient.patch @@ -0,0 +1,120 @@ +From 16811580755b6a4217e8835bc15c0649c37fe865 Mon Sep 17 00:00:00 2001 +From: Michal Srb +Date: Mon, 24 Mar 2014 11:11:12 +0100 +Subject: [PATCH] Stubs for casclient + +--- + .../its/tp/cas/client/ProxyTicketValidator.java | 29 ++++++++++ + .../its/tp/cas/client/ServiceTicketValidator.java | 64 ++++++++++++++++++++++ + 2 files changed, 93 insertions(+) + create mode 100644 src/main/java/edu/yale/its/tp/cas/client/ProxyTicketValidator.java + create mode 100644 src/main/java/edu/yale/its/tp/cas/client/ServiceTicketValidator.java + +diff --git a/src/main/java/edu/yale/its/tp/cas/client/ProxyTicketValidator.java b/src/main/java/edu/yale/its/tp/cas/client/ProxyTicketValidator.java +new file mode 100644 +index 0000000..0bdce9d +--- /dev/null ++++ b/src/main/java/edu/yale/its/tp/cas/client/ProxyTicketValidator.java +@@ -0,0 +1,29 @@ ++package edu.yale.its.tp.cas.client; ++ ++import java.util.ArrayList; ++import java.util.List; ++import org.xml.sax.Attributes; ++import org.xml.sax.SAXException; ++import org.xml.sax.helpers.DefaultHandler; ++ ++public class ProxyTicketValidator extends ServiceTicketValidator { ++ ++ public static void main(String args[]) throws Exception {} ++ ++ public List getProxyList() {return null;} ++ ++ protected DefaultHandler newHandler() {return null;} ++ ++ protected class ProxyHandler extends ServiceTicketValidator.Handler { ++ ++ public void startElement(String ns, String ln, String qn, Attributes a) {} ++ ++ public void endElement(String ns, String ln, String qn) throws SAXException {} ++ ++ public void endDocument() throws SAXException {} ++ } ++ ++ protected void clear() {} ++ ++ public String toString() {return null;} ++} +diff --git a/src/main/java/edu/yale/its/tp/cas/client/ServiceTicketValidator.java b/src/main/java/edu/yale/its/tp/cas/client/ServiceTicketValidator.java +new file mode 100644 +index 0000000..0de07d0 +--- /dev/null ++++ b/src/main/java/edu/yale/its/tp/cas/client/ServiceTicketValidator.java +@@ -0,0 +1,64 @@ ++package edu.yale.its.tp.cas.client; ++ ++import java.io.IOException; ++import java.io.StringReader; ++import javax.xml.parsers.ParserConfigurationException; ++import javax.xml.parsers.SAXParserFactory; ++import org.xml.sax.Attributes; ++import org.xml.sax.InputSource; ++import org.xml.sax.SAXException; ++import org.xml.sax.XMLReader; ++import org.xml.sax.helpers.DefaultHandler; ++ ++public class ServiceTicketValidator { ++ ++ public static void main(String args[]) throws Exception {} ++ ++ public void setCasValidateUrl(String x) {} ++ ++ public String getCasValidateUrl() {return null;} ++ ++ public void setProxyCallbackUrl(String x) {} ++ ++ public void setRenew(boolean b) {} ++ ++ public String getProxyCallbackUrl() {return null;} ++ ++ public void setServiceTicket(String x) {} ++ ++ public void setService(String x) {} ++ ++ public String getUser() {return null;} ++ ++ public String getPgtIou() {return null;} ++ ++ public boolean isAuthenticationSuccesful() {return false;} ++ ++ public String getErrorMessage() {return null;} ++ ++ public String getErrorCode() {return null;} ++ ++ public String getResponse() {return null;} ++ ++ public void validate() throws IOException, SAXException, ParserConfigurationException {} ++ ++ protected DefaultHandler newHandler() {return null;} ++ ++ protected class Handler extends DefaultHandler { ++ ++ public void startElement(String ns, String ln, String qn, Attributes a) {} ++ ++ public void characters(char[] ch, int start, int length) {} ++ ++ public void endElement(String ns, String ln, String qn) throws SAXException {} ++ ++ public void endDocument() throws SAXException {} ++ } ++ ++ protected void clear() {} ++ ++ public boolean isRenew() {return false;} ++ ++ public String toString() {return null;} ++} ++ +-- +1.8.5.3 + diff --git a/acegisecurity.spec b/acegisecurity.spec new file mode 100644 index 0000000..aba38da --- /dev/null +++ b/acegisecurity.spec @@ -0,0 +1,140 @@ +Name: acegisecurity +Version: 1.0.7 +Release: 1%{?dist} +Summary: Java/J2EE application security framework +License: ASL 2.0 +URL: http://sourceforge.net/projects/acegisecurity +BuildArch: noarch + +# sh create-tarball.sh +Source0: %{name}-%{version}.tar.gz +Source1: http://repo1.maven.org/maven2/org/%{name}/acegi-security/%{version}/acegi-security-%{version}.pom +Source2: http://www.apache.org/licenses/LICENSE-2.0.txt +Source3: create-tarball.sh + +# we don't have and don't need all the dependencies of acegisecurity thus build +# this package against these stubs only +Patch0: 0001-Stubs-for-casclient.patch +Patch1: 0001-Stubs-for-Spring-Framework-2.patch + +Patch2: 0001-Remove-unmappable-characters.patch + +BuildRequires: maven-local +BuildRequires: mvn(commons-codec:commons-codec) +BuildRequires: mvn(commons-collections:commons-collections) +BuildRequires: mvn(commons-lang:commons-lang) +BuildRequires: mvn(commons-logging:commons-logging) +BuildRequires: mvn(javax.servlet:jsp-api) +BuildRequires: mvn(javax.servlet:servlet-api) +BuildRequires: mvn(log4j:log4j) +BuildRequires: mvn(net.sf.ehcache:ehcache) +BuildRequires: mvn(org.aspectj:aspectjrt) +BuildRequires: mvn(org.jasig.cas.client:cas-client-core) +BuildRequires: mvn(org.springframework:spring-beans) +BuildRequires: mvn(org.springframework:spring-context) +BuildRequires: mvn(org.springframework:spring-core) +BuildRequires: mvn(org.springframework:spring-jdbc) +BuildRequires: mvn(org.springframework:spring-test) +BuildRequires: mvn(org.springframework:spring-web) +BuildRequires: mvn(oro:oro) + +%description +Acegi Security is a Java/Java EE framework that provides advanced +authentication, authorization and other comprehensive security features for +enterprise applications. In addition to having a comprehensive list of +security functionality, Acegi Security is very configurable and employs the +Spring Framework for configuration, it allows for reuse and portability of +security components, and it can also be used with non-Spring applications. + + +%package javadoc +Summary: Javadoc for %{name} + +%description javadoc +API documentation for %{name}. + +%prep +%setup -q + +%patch0 -p1 +%patch1 -p1 +%patch2 -p1 + +cp %{SOURCE1} pom.xml +cp %{SOURCE2} license.txt + +# missing parent pom +%pom_remove_parent +%pom_xpath_inject "pom:project" "org.acegisecurity" +%pom_xpath_inject "pom:project" "%{version}" + +# unneeded/unavailable deps +%pom_remove_dep cas:casclient +%pom_remove_dep taglibs:standard +%pom_remove_dep hsqldb:hsqldb +%pom_remove_dep org.apache.directory.server:apacheds-core +%pom_remove_dep org.slf4j:slf4j-log4j12 +%pom_remove_dep jmock:jmock + +# TODO: remove this +%pom_remove_dep aspectj:aspectjrt +%pom_add_dep org.aspectj:aspectjrt + +# fix springframework gId:aId +# TODO: upstream moved a lot of classes to different JARs in springframework +# 3.x, should we add aliases? +%pom_remove_dep org.springframework:spring-remoting +%pom_remove_dep org.springframework:spring-jdbc +%pom_remove_dep org.springframework:spring-support +%pom_remove_dep org.springframework:spring-web +%pom_remove_dep org.springframework:spring-mock +%pom_remove_dep org.springframework:spring-ldap +%pom_add_dep org.springframework:spring-context +%pom_add_dep org.springframework:spring-beans +%pom_add_dep org.springframework:spring-jdbc +%pom_add_dep org.springframework:spring-web +%pom_add_dep org.springframework:spring-test + +# don't add classes containing only stubs into the final jar +%pom_xpath_inject "pom:project/pom:build" \ +" + + maven-jar-plugin + 2.4 + + + default-jar + package + + jar + + + + edu/**/* + org/springframework/metadata/Attributes* + org/springframework/web/bind/RequestUtils* + + + + + + +" + +%build +%mvn_build -- -Dproject.build.sourceEncoding=UTF-8 + +%install +%mvn_install + +%files -f .mfiles +%dir %{_javadir}/%{name} +%doc license.txt notice.txt + +%files javadoc -f .mfiles-javadoc +%doc license.txt notice.txt + +%changelog +* Wed Mar 19 2014 Michal Srb - 1.0.7-1 +- Initial packaging + diff --git a/create-tarball.sh b/create-tarball.sh new file mode 100644 index 0000000..7562476 --- /dev/null +++ b/create-tarball.sh @@ -0,0 +1,18 @@ +#!/usr/bin/env bash + +name=acegisecurity +version=1.0.7 + +wget http://repo1.maven.org/maven2/org/${name}/acegi-security/${version}/acegi-security-${version}-sources.jar + +mkdir ${name}-${version} +unzip acegi-security-${version}-sources.jar -d ${name}-${version} + +pushd ${name}-${version} +rm -Rf authz.tld META-INF/ +mkdir -p src/main/java/ +mv org/ src/main/java/ +popd + +tar czvf ${name}-${version}.tar.gz ${name}-${version} + diff --git a/sources b/sources index e69de29..df72a34 100644 --- a/sources +++ b/sources @@ -0,0 +1,3 @@ +ed525656a5c9fe03116e458fa1876610 acegisecurity-1.0.7.tar.gz +d6fc6dec7c0a6f368fa72c4981acf620 acegi-security-1.0.7.pom +3b83ef96387f14655fc854ddc3c6bd57 LICENSE-2.0.txt