Sergey, I will do so, thx for help. BR, Jakub
On Thu, Jul 11, 2013 at 12:26 PM, Sergey Beryozkin <sberyoz...@gmail.com>wrote: > Hi > > On 11/07/13 10:59, Ja kub wrote: > >> Hi Sergey, >> >> Thx for response. >> >> Sorry I haven't written before, but I run cxf on tomcat, as servlet, this >> changes situation: >> <servlet> >> <servlet-name>cxf</servlet-**name> >> <display-name>cxf</display-**name> >> <description>Apache CXF Endpoint</description> >> >> <servlet-class>org.apache.cxf.**transport.servlet.CXFServlet</** >> servlet-class> >> <load-on-startup>1</load-on-**startup> >> <async-supported>true</async-**supported> >> </servlet> >> >> so above config will probably not work (it's for jetty). >> >> First I thought I can somehow do this authorization with spring-security, >> and display soap fault on auth error. >> To be able to do it in interceptor I can not use spring-security for >> authorization. Possibly in such case, when I do authorization manually, it >> will be enough to throw RuntimeException from authorization method, and >> cxf >> will generate usual soap fault (I guess it will). >> This will go with http 200 status, I guess. Maybe it will be sufficient. >> Your solution would be nicer, because it could go with 403 http status. >> > > I wonder if we should work on creating a CXF level interceptor, similar to > JAASLoginInterceptor (works with Basic Auth, etc), to get client certs > utilized for creating security context and using it with CXF > SimpleAuthorizingInterceptor > > In meantime - please experiment with intercepting somehow Spring Sec > reporting 403, > > Sergey > >> >> Thx again for response. >> >> BR, >> Jakub >> >> >> >> >> On Thu, Jul 11, 2013 at 11:37 AM, Sergey Beryozkin <sberyoz...@gmail.com >> >wrote: >> >> Hi >>> >>> On 10/07/13 23:00, Ja kub wrote: >>> >>> Hallo >>>> >>>> Do you know if there is any out of the box solution to send soap fault >>>> when >>>> authentication to web service fails (auth is with client cert over ssl)? >>>> >>>> Now I get regular html page, but I would prefer to get soap fault. >>>> >>>> >>> I think you can register a Fault out interceptor in >>> jaxws:outFaultInterceptors, this interceptor will write a soap fault >>> directly: >>> >>> public class CustomOutFaultInterceptor extends >>> AbstractPhaseInterceptor<****Message> >>> >>> { >>> public CustomOutFaultInterceptor() { >>> this(Phase.PRE_STREAM); >>> } >>> public void handleMessage(Message message) throws Fault { >>> Exception ex = message.getContent(Exception.****class); >>> // check the exception >>> >>> HttpServletResponse response = (HttpServletResponse)message.*** >>> * >>> getExchange() >>> .getInMessage().get(****AbstractHTTPDestination.HTTP_**** >>> >>> RESPONSE); >>> >>> // write to response directly >>> >>> } >>> >>> } >>> >>> CXF may have utilities for generating SoapFaults, I guess it is a simple >>> DOM in case of 403 >>> >>> >>> >>> Is there any integration of cxf with spring security ? >>>> Does cxf standalone provide client cert authentication ? >>>> >>>> >>>> Have look at this configuration example (I copied it from one of >>> ws-security tests): >>> http://svn.apache.org/repos/****asf/cxf/trunk/systests/rs-**<http://svn.apache.org/repos/**asf/cxf/trunk/systests/rs-**> >>> security/src/test/java/org/****apache/cxf/systest/jaxrs/** >>> security/xml/server.xml<http:/**/svn.apache.org/repos/asf/cxf/** >>> trunk/systests/rs-security/**src/test/java/org/apache/cxf/** >>> systest/jaxrs/security/xml/**server.xml<http://svn.apache.org/repos/asf/cxf/trunk/systests/rs-security/src/test/java/org/apache/cxf/systest/jaxrs/security/xml/server.xml> >>> > >>> >>> >>> Note, the client certs then will also be available as Message properties, >>> here is how you can get to them: >>> >>> private Certificate[] getTLSCertificates(Message message) { >>> TLSSessionInfo tlsInfo = message.get(TLSSessionInfo.****class); >>> >>> return tlsInfo != null ? tlsInfo.getPeerCertificates() : null; >>> >>> } >>> >>> I can give up spring security and validate manually, and throw >>> exception, >>> >>>> but probably this is not an elegant solution. >>>> >>>> >>>> HTH, Sergey >>> >>> Regards >>> >>>> Jakub >>>> >>>> >>>> >>> -- >>> Sergey Beryozkin >>> >>> Talend Community Coders >>> http://coders.talend.com/ >>> >>> Blog: http://sberyozkin.blogspot.com >>> >>> >> > > -- > Sergey Beryozkin > > Talend Community Coders > http://coders.talend.com/ > > Blog: http://sberyozkin.blogspot.com >