As we transition to the new Hyland Community, some post links may be temporarily disrupted as we finalize redirects. We apologize for the inconvenience and are working to resolve this as quickly as possible. Details.
package com.wannakey.user;import java.io.Serializable;import java.util.HashMap;import java.util.Map;import org.alfresco.model.ContentModel;import org.alfresco.service.cmr.repository.NodeRef;import org.alfresco.service.cmr.repository.NodeService;import org.alfresco.service.cmr.security.AuthenticationService;import org.alfresco.service.cmr.security.PersonService;import org.alfresco.service.namespace.QName;import org.alfresco.web.scripts.DeclarativeWebScript;import org.alfresco.web.scripts.WebScriptRequest;import org.alfresco.web.scripts.WebScriptStatus;import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;import org.alfresco.repo.security.authentication.AuthenticationException;import org.alfresco.service.cmr.security.AuthenticationService;import org.alfresco.web.scripts.WebScriptException;import javax.servlet.http.HttpServletResponse;import java.io.File;import java.io.IOException;public class SignIn extends DeclarativeWebScript { // Logger private static final Log log = LogFactory.getLog(SignIn.class); // dependencies private AuthenticationService authenticationService; /** * @param authenticationService */ public void setAuthenticationService(AuthenticationService authenticationService) { this.authenticationService = authenticationService; } @Override protected Map<String, Object> executeImpl(WebScriptRequest req, WebScriptStatus status) { if (authenticationService == null) { log.debug("Signin.executeImpl authenticationService is null"); } else { log.debug("Signin.executeImpl authenticationService is NOT null"); } log.debug("Signin.executeImpl called CurrentUser=" + authenticationService.getCurrentUserName()); String email = req.getParameter("email"); String password = req.getParameter("password"); if ((email == null) || (email.length() == 0)) { throw new WebScriptException(HttpServletResponse.SC_BAD_REQUEST, "email not specified"); } if ((password == null) || (password.length() == 0)) { throw new WebScriptException(HttpServletResponse.SC_BAD_REQUEST, "Password not specified"); } try { // get ticket authenticationService.authenticate(email, password.toCharArray()); // add ticket to model for javascript and template access Map<String, Object> model = new HashMap<String, Object>(7, 1.0f); model.put("ticket", authenticationService.getCurrentTicket()); return model; } catch(AuthenticationException e) { throw new WebScriptException(HttpServletResponse.SC_FORBIDDEN, "Signin failed"); } finally { authenticationService.clearCurrentSecurityContext(); } }}
<webscript> <shortname>signin</shortname> <description>Sign in with your wannakey-account</description> <url>/user/signin?email={email}&password={password}</url> <format default="xml"/> <authentication>none</authentication> <transaction>required</transaction></webscript>
<?xml version="1.0" encoding="UTF-8"?><ticket>${ticket}</ticket>
<bean id="webscript.com.wannakey.signin.get" class="com.wannakey.user.SignIn" parent="webscript" abstract="false" singleton="true" lazy-init="default" autowire="default" dependency-check="default"> <property name="authenticationService" ref="authenticationService" /> </bean>
log4j.logger.org.alfresco.web.scripts=debug
log4j.properties
webscript.<packageId>.<serviceId>.<httpMethod>
org/alfresco/repository
org.alfresco.repository
webscript.org.alfresco.repository.login.get
12:45:37,533 ERROR [[Catalina].[localhost].[/alfresco]] Exception sending context initialized event to listener instance of class org.alfresco.web.app.ContextListenerorg.springframework.beans.factory.CannotLoadBeanClassException: Cannot find class [com.tsgrp.alfresco.webscript.SignInWebScript] for bean with name 'webscript.com.tsgrp.signin.get' defined in file [C:\Alfresco\tomcat\shared\classes\alfresco\extension\auth-context.xml]; nested exception is java.lang.ClassNotFoundException: com.tsgrp.alfresco.webscript.SignInWebScriptCaused by:java.lang.ClassNotFoundException: com.tsgrp.alfresco.webscript.SignInWebScript at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1359) at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1205) at org.springframework.util.ClassUtils.forName(ClassUtils.java:183) at org.springframework.beans.factory.support.AbstractBeanDefinition.resolveBeanClass(AbstractBeanDefinition.java:317) at org.springframework.beans.factory.support.AbstractBeanFactory.resolveBeanClass(AbstractBeanFactory.java:1044) at org.springframework.beans.factory.support.AbstractBeanFactory.isBeanClassMatch(AbstractBeanFactory.java:1072) at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanNamesForType(DefaultListableBeanFactory.java:165) at org.springframework.context.support.AbstractApplicationContext.getBeanNamesForType(AbstractApplicationContext.java:691) at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:395) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:328)
<bean id="webscript.com.tsgrp.signin.get" class="com.tsgrp.alfresco.webscript.SignInWebScript" parent="webscript" abstract="false" singleton="true" lazy-init="default" autowire="default" dependency-check="default"> <property name="authenticationService" ref="authenticationService" /> </bean>
14:57:19,266 ERROR [org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/alfresco]] Exception sending context initialized event to listener instance of class org.alfresco.web.app.ContextListener org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'webscript.com.tsgrp.helloworld.get' defined in file [C:\Alfresco\tomcat\shared\classes\alfresco\extension\auth-context.xml]: Error setting property values; nested exception is org.springframework.beans.NotWritablePropertyException: Invalid property 'scriptContext' of bean class [com.tsgrp.alfresco.webscript.HelloWorld]: Bean property 'scriptContext' is not writable or has an invalid setter method. Does the parameter type of the setter match the return type of the getter? Caused by: org.springframework.beans.NotWritablePropertyException: Invalid property 'scriptContext' of bean class [com.tsgrp.alfresco.webscript.HelloWorld]: Bean property 'scriptContext' is not writable or has an invalid setter method. Does the parameter type of the setter match the return type of the getter? at org.springframework.beans.BeanWrapperImpl.setPropertyValue(BeanWrapperImpl.java:748) at org.springframework.beans.BeanWrapperImpl.setPropertyValue(BeanWrapperImpl.java:606) at org.springframework.beans.AbstractPropertyAccessor.setPropertyValue(AbstractPropertyAccessor.java:49) at org.springframework.beans.AbstractPropertyAccessor.setPropertyValues(AbstractPropertyAccessor.java:74) at org.springframework.beans.AbstractPropertyAccessor.setPropertyValues(AbstractPropertyAccessor.java:57) at org.springframework.beans.factory.support.AbstractBeanFactory.applyPropertyValues(AbstractBeanFactory.java:840) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1026) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:809) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:425) at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:250) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:141) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:247) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:161) at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:273) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:346) at org.springframework.web.context.support.AbstractRefreshableWebApplicationContext.refresh(AbstractRefreshableWebApplicationContext.java:156) at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:246) at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:184) at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:49) at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3764) at org.apache.catalina.core.StandardContext.start(StandardContext.java:4216) at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:760) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:740) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:544) at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:920) at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:883) at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:492) at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1138) at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311) at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:120) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1022) at org.apache.catalina.core.StandardHost.start(StandardHost.java:736) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014) at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443) at org.apache.catalina.core.StandardService.start(StandardService.java:448) at org.apache.catalina.core.StandardServer.start(StandardServer.java:700) at org.apache.catalina.startup.Catalina.start(Catalina.java:552) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:295) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:433)