Hi Steve,
Ah, interesting, thanks for that; didn't know about this - found the file:
fed...@fedora:~/fedora-dev/fedora-32/server$ find . | grep deny
./fedora-internal-use/fedora-internal-use-repository-policies-approximating-2.0/deny-reloadPolicies-if-not-localhost.xml
./fedora-internal-use/fedora-internal-use-repository-policies-approximating-2.0/deny-purge-datastream-if-active-or-inactive.xml
./fedora-internal-use/fedora-internal-use-repository-policies-approximating-2.0/deny-serverShutdown-if-not-localhost.xml
./fedora-internal-use/fedora-internal-use-repository-policies-approximating-2.0/deny-policy-management-if-not-administrator.xml
./fedora-internal-use/fedora-internal-use-repository-policies-approximating-2.0/deny-apim-if-not-localhost.xml
./fedora-internal-use/fedora-internal-use-repository-policies-approximating-2.0/deny-inactive-or-deleted-objects-or-datastreams-if-not-administrator.xml
./fedora-internal-use/fedora-internal-use-repository-policies-approximating-2.0/deny-purge-object-if-active-or-inactive.xml
is this the correct one? It seems fairly hidden away, perhaps there's
somewhere else I should be editing these policies?
Anyway, I have removed the policy file completely (for the purposes of
testing) and run the fedora-reload-policies tool:
fed...@fedora:~/fedora-dev/fedora-32/server$ find . | grep deny
./fedora-internal-use/fedora-internal-use-repository-policies-approximating-2.0/deny-reloadPolicies-if-not-localhost.xml
./fedora-internal-use/fedora-internal-use-repository-policies-approximating-2.0/deny-purge-datastream-if-active-or-inactive.xml
./fedora-internal-use/fedora-internal-use-repository-policies-approximating-2.0/deny-serverShutdown-if-not-localhost.xml
./fedora-internal-use/fedora-internal-use-repository-policies-approximating-2.0/deny-policy-management-if-not-administrator.xml
./fedora-internal-use/fedora-internal-use-repository-policies-approximating-2.0/deny-inactive-or-deleted-objects-or-datastreams-if-not-administrator.xml
./fedora-internal-use/fedora-internal-use-repository-policies-approximating-2.0/deny-purge-object-if-active-or-inactive.xml
fed...@fedora:~/fedora-dev/fedora-32/server/bin$
./fedora-reload-policies.sh http fedoraAdmin *****
SUCCESS: Policies have been reloaded
but am still seeing exactly the same results.
I then tried modifying the deny-apim-if-not-localhost.xml, changing the
Apply rules as follows:
<Rule RuleId="1" Effect="Deny">
<Condition FunctionId="urn:oasis:names:tc:xacml:1.0:function:not">
<Apply FunctionId="urn:oasis:names:tc:xacml:1.0:function:or">
<!-- Apply
FunctionId="urn:oasis:names:tc:xacml:1.0:function:string-at-least-one-member-of">
<EnvironmentAttributeDesignator
AttributeId="urn:fedora:names:fedora:2.1:environment:httpRequest:clientIpAddress"
DataType="http://www.w3.org/2001/XMLSchema#string"/>
<Apply
FunctionId="urn:oasis:names:tc:xacml:1.0:function:string-bag">
<AttributeValue
DataType="http://www.w3.org/2001/XMLSchema#string">127.0.0.1</AttributeValue>
</Apply>
</Apply -->
<Apply
FunctionId="urn:oasis:names:tc:xacml:1.0:function:regexp-string-match">
<AttributeValue
DataType="http://www.w3.org/2001/XMLSchema#string">.*</AttributeValue>
<Apply
FunctionId="urn:oasis:names:tc:xacml:1.0:function:string-one-and-only">
<EnvironmentAttributeDesignator
AttributeId="urn:fedora:names:fedora:2.1:environment:httpRequest:clientIpAddress"
DataType="http://www.w3.org/2001/XMLSchema#string"/>
</Apply>
</Apply>
</Apply>
</Condition>
</Rule>
I believe, from the documentation in the file, that this should mean
that any IP address which matches the regular expression .* (so, all of
them) will be permitted to access the API. This approach also failed.
I tried also restarting tomcat after policy reloads, without effect.
Any thoughts?
Cheers,
Richard
Steve Bayliss wrote:
> Hi Richard
>
> You don't by any chance have the deny-apim-if-not-localhost.xml policy on
> the new machine? This policy will (unedited) prevent API-M access unless
> you're accessing Fedora from the same machine on which it is installed.
>
> Regards
> Steve
>
>
>> -----Original Message-----
>> From: Richard Jones [mailto:[email protected]]
>> Sent: 21 June 2010 15:24
>> To: [email protected]
>> Subject: [Fedora-commons-developers] Authorisation Error using API
>>
>>
>> Hi Folks,
>>
>> I'm having a bizarre problem with my Fedora 3.2. I've been using the
>> desktop admin client to create objects in the repository, and today I
>> have moved my fedora repository onto another machine. Now when I
>> attempt to create new objects through both the SOAP (using
>> the desktop
>> client) or the REST API's I get these AuthzDeniedExceptions. I have
>> used the desktop client to successfully authenticate onto the Fedora
>> instance, and I can perform READ operations such as search
>> and retrieve,
>> but when I ask it to create a new object I get this error in the logs.
>>
>> Any suggestions?
>>
>> Cheers,
>>
>> Richard
>>
>>
>> ERROR 2010-06-21 14:18:06.793 [http-8080-Processor24]
>> (FedoraAPIMBindingSOAPHTTPImpl) Error getting next PID
>> fedora.server.errors.authorization.AuthzDeniedException:
>> at
>> fedora.server.security.PolicyEnforcementPoint.enforce(PolicyEn
>> forcementPoint.java:457)
>> at
>> fedora.server.security.DefaultAuthorization.enforceGetNextPid(
>> DefaultAuthorization.java:637)
>> at
>> fedora.server.management.DefaultManagement.getNextPID(DefaultM
>> anagement.java:1181)
>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>> at
>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccess
>> orImpl.java:57)
>> at
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMeth
>> odAccessorImpl.java:43)
>> at java.lang.reflect.Method.invoke(Method.java:616)
>> at
>> fedora.server.messaging.NotificationInvocationHandler.invoke(N
>>
> otificationInvocationHandler.java:92)
>
>> at $Proxy0.getNextPID(Unknown Source)
>> at
>> fedora.server.management.ManagementModule.getNextPID(Managemen
>> tModule.java:323)
>> at
>> fedora.server.management.FedoraAPIMBindingSOAPHTTPImpl.getNext
>> PID(FedoraAPIMBindingSOAPHTTPImpl.java:507)
>> at
>> fedora.server.management.FedoraAPIMBindingSOAPHTTPSkeleton.get
>> NextPID(FedoraAPIMBindingSOAPHTTPSkeleton.java:432)
>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>> at
>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccess
>> orImpl.java:57)
>> at
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMeth
>> odAccessorImpl.java:43)
>> at java.lang.reflect.Method.invoke(Method.java:616)
>> at
>> org.apache.axis.providers.java.RPCProvider.invokeMethod(RPCPro
>> vider.java:397)
>> at
>> org.apache.axis.providers.java.RPCProvider.processMessage(RPCP
>> rovider.java:186)
>> at
>> org.apache.axis.providers.java.JavaProvider.invoke(JavaProvide
>> r.java:323)
>> at
>> org.apache.axis.strategies.InvocationStrategy.visit(Invocation
>> Strategy.java:32)
>> at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
>> at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
>> at
>> org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:453)
>> at org.apache.axis.server.AxisServer.invoke(AxisServer.java:281)
>> at
>> org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.
>> java:699)
>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
>> at
>> org.apache.axis.transport.http.AxisServletBase.service(AxisSer
>> vletBase.java:327)
>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
>> at
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilt
>> er(ApplicationFilterChain.java:269)
>> at
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(Appli
>> cationFilterChain.java:188)
>> at
>> fedora.server.security.servletfilters.FilterSetup.doFilter(Fil
>> terSetup.java:256)
>> at
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilt
>> er(ApplicationFilterChain.java:215)
>> at
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(Appli
>> cationFilterChain.java:188)
>> at
>> fedora.server.security.servletfilters.FilterSetup.doFilter(Fil
>> terSetup.java:256)
>> at
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilt
>> er(ApplicationFilterChain.java:215)
>> at
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(Appli
>> cationFilterChain.java:188)
>> at
>> fedora.server.security.servletfilters.FilterSetup.doFilter(Fil
>> terSetup.java:256)
>> at
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilt
>> er(ApplicationFilterChain.java:215)
>> at
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(Appli
>> cationFilterChain.java:188)
>> at
>> fedora.server.security.servletfilters.FilterSetup.doFilter(Fil
>> terSetup.java:256)
>> at
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilt
>> er(ApplicationFilterChain.java:215)
>> at
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(Appli
>> cationFilterChain.java:188)
>> at
>> fedora.server.security.servletfilters.FilterSetup.doFilter(Fil
>> terSetup.java:256)
>> at
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilt
>> er(ApplicationFilterChain.java:215)
>> at
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(Appli
>> cationFilterChain.java:188)
>> at
>> org.apache.catalina.core.StandardWrapperValve.invoke(StandardW
>> rapperValve.java:213)
>> at
>> org.apache.catalina.core.StandardContextValve.invoke(StandardC
>> ontextValve.java:174)
>> at
>> org.apache.catalina.authenticator.AuthenticatorBase.invoke(Aut
>> henticatorBase.java:525)
>> at
>> org.apache.catalina.core.StandardHostValve.invoke(StandardHost
>> Valve.java:127)
>> at
>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReport
>> Valve.java:117)
>> at
>> org.apache.catalina.core.StandardEngineValve.invoke(StandardEn
>> gineValve.java:108)
>> at
>> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdap
>> ter.java:174)
>> at
>> org.apache.coyote.http11.Http11Processor.process(Http11Process
>> or.java:874)
>> at
>> org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHa
>> ndler.processConnection(Http11BaseProtocol.java:665)
>> at
>> org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolT
>> cpEndpoint.java:528)
>> at
>> org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(Le
>>
> aderFollowerWorkerThread.java:81)
>
>> at
>> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(
>> ThreadPool.java:689)
>> at java.lang.Thread.run(Thread.java:636)
>>
>> Cheers,
>>
>> Richard
>>
>> --
>> Richard Jones
>> Head of Repository Systems, Symplectic Limited
>> e: [email protected]
>> t: 0845 026 4755
>> t: +44 (0)207 7334036
>> w: http://www.symplectic.co.uk/
>>
>>
>> --------------------------------------------------------------
>> ----------------
>> ThinkGeek and WIRED's GeekDad team up for the Ultimate
>> GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the
>> lucky parental unit. See the prize list and enter to win:
>> http://p.sf.net/sfu/thinkgeek-promo
>> _______________________________________________
>> Fedora-commons-developers mailing list
>> [email protected]
>> https://lists.sourceforge.net/lists/listinfo/fedora-commons-developers
>>
>>
>
>
>
--
Richard Jones
Head of Repository Systems, Symplectic Limited
e: [email protected]
t: 0845 026 4755
t: +44 (0)207 7334036
w: http://www.symplectic.co.uk/
------------------------------------------------------------------------------
ThinkGeek and WIRED's GeekDad team up for the Ultimate
GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the
lucky parental unit. See the prize list and enter to win:
http://p.sf.net/sfu/thinkgeek-promo
_______________________________________________
Fedora-commons-developers mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/fedora-commons-developers