javaee控制器上的Spring安全认证
我有一个web服务器,它有一个web界面,用户使用Spring security进行身份验证,但我需要使用同一个引擎对来自我的移动应用程序的登录请求的用户进行身份验证,我需要对他们进行身份验证,我一直在研究身份验证类,但我似乎无法正确地使用它们。这是我第一次这样做,我希望有人能帮助我,因为我有点迷路了javaee控制器上的Spring安全认证,java,spring,spring-security,Java,Spring,Spring Security,我有一个web服务器,它有一个web界面,用户使用Spring security进行身份验证,但我需要使用同一个引擎对来自我的移动应用程序的登录请求的用户进行身份验证,我需要对他们进行身份验证,我一直在研究身份验证类,但我似乎无法正确地使用它们。这是我第一次这样做,我希望有人能帮助我,因为我有点迷路了 @Post @Path("/mobile/session") public void login(String username, String password) {
@Post
@Path("/mobile/session")
public void login(String username, String password) {
Usuario usuario = usuarioService.loadByUserName(username);
UsernamePasswordAuthenticationToken usernamePassAuthToken = new UsernamePasswordAuthenticationToken(usuario,EncriptarMD5.encriptar(password));
Authentication auth = authenticationManager.authenticate(usernamePassAuthToken);
if(auth.isAuthenticated()){
result.use(Results.json()).from(RequestContextHolder.currentRequestAttributes().getSessionId().toString(), "token").serialize();
} else {
result.use(Results.http()).setStatusCode(401);
}
}
我得到了以下异常
br.com.caelum.vraptor.Interception异常:引发异常,请检查根本原因以了解详细信息:org.springframework.security.authentication.BadCredentialsException:错误凭据
在br.com.caelum.vraptor.interceptor.ExecuteMethodInterceptor.intercept(ExecuteMethodInterceptor.java:96)
在br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
在br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
在br.com.caelum.vraptor.core.LazyInterceptorHandler.execute(LazyInterceptorHandler.java:61)
在br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
在br.com.caelum.vraptor.interceptor.ParametersInstantiatorInterceptor.intercept(ParametersInstantiatorInterceptor.java:93)
位于br.com.caelum.vraptor.core.LazyInterceptorHandler.execute(LazyInterceptorHandler.java:59)
在br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
在br.com.otgmobile.trackgoweb.util.CustomInterceptor.intercept(CustomInterceptor.java:24)
在br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
在br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
在br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:56)
在br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
在br.com.caelum.vraptor.interceptor.FlashInterceptor.intercept(FlashInterceptor.java:83)
在br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
在br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
在br.com.caelum.vraptor.interceptor.ExceptionHandlerInterceptor.interceptor(ExceptionHandlerInterceptor.java:71)
在br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
在br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
位于br.com.caelum.vraptor.interceptor.instanceInterceptor.intercept(instanceInterceptor.java:48)
在br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
在br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
位于br.com.caelum.vraptor.interceptor.ResourceLookupInterceptor.intercept(ResourceLookupInterceptor.java:69)
在br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
在br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
位于br.com.caelum.vraptor.core.EnhancedRequestExecution.execute(EnhancedRequestExecution.java:44)
在br.com.caelum.vraptor.vraptor$1.insideRequest(vraptor.java:91)
在br.com.caelum.vraptor.ioc.spring.SpringProvider.provideForRequest(SpringProvider.java:58)
在br.com.caelum.vraptor.vraptor.doFilter(vraptor.java:88)
位于org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
位于org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
位于org.sitemesh.webapp.contentfilter.ContentBufferingFilter.bufferAndPostProcess(ContentBufferingFilter.java:169)
位于org.sitemesh.webapp.contentfilter.ContentBufferingFilter.doFilter(ContentBufferingFilter.java:126)
位于org.sitemesh.config.configurableSitemhFilter.doFilter(configurableSitemhFilter.java:163)
位于org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
位于org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
位于org.springframework.orm.jpa.support.OpenEntityManagerViewFilter.doFilterInternal(OpenEntityManagerViewFilter.java:147)
位于org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
位于org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
位于org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
位于org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:186)
位于org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:160)
位于org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)
位于org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:259)
位于org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
位于org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
位于org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
位于org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
位于org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
位于org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
位于org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
位于org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:931)
位于org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
位于org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
位于org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004)
在或
SecurityContextHolder.getContext().setAuthentication(authentication);
UsernamePasswordAuthenticationToken usernamePassAuthToken = new UsernamePasswordAuthenticationToken(usuario,password);