i wie unten eine Webservice erstellen zu implementieren:Ist es der richtige Weg Frühling Sicherheit & CXF webservice
web.xml
<display-name>MyService</display-name>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/beans.xml,/WEB-INF/spring-security.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<servlet>
<servlet-name>CXFServlet</servlet-name>
<servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>CXFServlet</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>
<!-- Spring Security Filter -->
<filter>
<filter-name>springSecurityFilterChain</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
<filter-mapping>
<filter-name>springSecurityFilterChain</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
beans.xml
<import resource="classpath:META-INF/cxf/cxf.xml" />
<import resource="classpath:META-INF/cxf/cxf-servlet.xml"/>
<context:component-scan base-package="com.*" />
<jaxrs:server id="employeeService" address="/employeeservices">
<jaxrs:providers>
<bean class="org.codehaus.jackson.jaxrs.JacksonJsonProvider" />
</jaxrs:providers>
<jaxrs:serviceBeans>
<ref bean="empService" />
</jaxrs:serviceBeans>
<jaxrs:extensionMappings>
<entry key="xml" value="application/xml" />
<entry key="json" value="application/json" />
</jaxrs:extensionMappings>
</jaxrs:server>
<bean id="empService" class="com.service.impl.EmployeeServiceImpl"/>
<bean id="employeeDao" class="com.dao.EmployeeDao"/>
feder Sicherheit. xml
<http auto-config="true" use-expressions="true" create-session="stateless" >
<csrf disabled="true"/>
<http-basic entry-point-ref="restAuthenticationEntryPoint"></http-basic>
<intercept-url pattern="/**" access="hasRole('ROLE_USER')" />
</http>
<beans:bean id="userAuthorService" class="com.auth.UserAuthorService"/>
<beans:bean id="restAuthenticationEntryPoint" class="com.auth.UserBasicAuthenticationEntryPoint">
<beans:property name="realmName" value="Name Of Your Realm"/>
</beans:bean>
<authentication-manager>
<authentication-provider user-service-ref="userAuthorService">
<password-encoder ref="bcryptPasswordEncoder"/>
</authentication-provider>
</authentication-manager>
<beans:bean id="bcryptPasswordEncoder"
class="org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder">
<beans:constructor-arg name="strength" value="5" />
</beans:bean>
<beans:bean id="loggerListener" class="org.springframework.security.authentication.event.LoggerListener"/>
Durch diese Konfiguration, ist es der Ablauf des Anfrageprozesses? : Anfrage -> Spring Sicherheit (Authentifizierung überprüfen) -> CXF -> Antwort.
Gibt es Probleme in dieser Konfiguration, wenn ich es im echten Server bereitstellen? Wie sieht die Standardkonfiguration bei Verwendung von CXF und Feder aus?
wenn ich rufe rechts uri: http://localhost:8089/MyService/rest/employeeservices/getemployeedetals?employeeId=004. Es ist in Ordnung. Aber rufen Sie falsches uri: http://localhost:8089/MyService/rest/employeeservices/getemployeedetallll?employeeId=004. Es throw Ausnahme:
ACHTUNG: Kein Betrieb passenden Anforderungspfad "/ MyService/rest/employeeservices/getemployeedetallll" gefunden wird, Relative Pfad:/getemployeedetal, HTTP-Methode: GET, Contenttype: /, Akzeptieren: /,. Bitte aktivieren Sie FINE/TRACE Loglevel für weitere Details. 7. Juni 2016 13.55.17 org.apache.cxf.jaxrs.impl.WebApplicationExceptionMapper toResponse
WARNUNG: javax.ws.rs.ClientErrorException bei org.apache.cxf.jaxrs.utils.SpecExceptions. toHttpException (SpecExceptions.java:110) bei org.apache.cxf.jaxrs.utils.ExceptionUtils.toHttpException (ExceptionUtils.java:149) bei org.apache.cxf.jaxrs.utils.JAXRSUtils.findTargetMethod (JAXRSUtils.java: 477)
Also wie kann ich die richtige uri vor Zugriff Controller Klasse filtern.
Bitte helfen Sie mir. Vielen Dank.
Danke pedrofb, es macht mich klar – KienNguyen