0

私はこのコードに従っていますhttp://helpx.adobe.com/experience-manager/using/submitting-mobile-form-data-cq.html。最初に、オーサーインスタンスで実行され、正常に動作している createuser.json.jsp から次のコードを使用してセッションを作成しようとしました-

   <%@include file="/libs/foundation/global.jsp"%>
   <%@ page import="org.apache.sling.jcr.api.SlingRepository" %>
   <%@ page import="com.day.cq.security.UserManager" %>
     <%@ page import="com.day.cq.security.UserManagerFactory" %>
  <%@ page import="com.day.cq.security.User" %>
   <%@ page import="com.day.cq.security.Authorizable" %>
  <%@ page import="com.day.cq.security.profile.Profile" %>
   <%@ page import="java.util.Iterator" %>
  <%@ page import="java.util.List" %>
 <%@ page import="java.util.ArrayList" %>
 <%@ page import="javax.jcr.Repository" %>
 <%@ page import="javax.jcr.Session" %>
 <%@ page import="javax.jcr.SimpleCredentials" %>
 <%@ page import="org.apache.jackrabbit.commons.JcrUtils" %>
<%@ page import="org.apache.sling.commons.json.io.*" %><%

 final SlingRepository repos = sling.getService(SlingRepository.class);
 final UserManagerFactory umFactory = sling.getService(UserManagerFactory.class);
 Session session = null;
 try{
 session = repos.loginAdministrative(null); // I'm able to create session
   catch (Exception e)
   {
 System.out.println("Exception Occured: " + e.getMessage());
    }
  finally
   {
  session.logout(); 
 session = null;
  }%>

ただし、セッションを作成するための上記のコードは、パブリッシュ インスタンスでは機能しません。そこで、以下のようにコードを修正してオーサーインスタンスで実行しようとしましたが、この場合は createuser.json.jsp が呼び出されません。追加した Sysout ステートメントが表示されない -

 <%@include file="/libs/foundation/global.jsp"%>
 <%@ page import="org.apache.sling.jcr.api.SlingRepository" %>
 <%@ page import="com.day.cq.security.UserManager" %>
<%@ page import="com.day.cq.security.UserManagerFactory" %>
  <%@ page import="com.day.cq.security.User" %>
 <%@ page import="com.day.cq.security.Authorizable" %>
 <%@ page import="com.day.cq.security.profile.Profile" %>
  <%@ page import="java.util.Iterator" %>
 <%@ page import="java.util.List" %>
 <%@ page import="java.util.ArrayList" %>
  <%@ page import="javax.jcr.Repository" %>
  <%@ page import="javax.jcr.Session" %>
   <%@ page import="javax.jcr.SimpleCredentials" %>
  <%@ page import="org.apache.jackrabbit.commons.JcrUtils" %>
   <%@ page import="org.apache.sling.commons.json.io.*" %><%
  final SlingRepository repos = sling.getService(SlingRepository.class);
  final UserManagerFactory umFactory = sling.getService(UserManagerFactory.class);
  try
   { System.out.println("Hello session creating");
     Repository repository = JcrUtils.getRepository("http://somehost:4502/crx");
        Session session = repository.login(new SimpleCredentials("admin",  
      "admin".toCharArray()),"crx.default"); 
     System.out.println("session: " + session);
     catch (Exception e)
      {
   System.out.println("Exception Occured: " + e.getMessage());
     }
   finally
    {
    session.logout(); 
   session = null;
    }%>

次の行を削除すると、createuser.json.jsp が呼び出されます。

     Repository repository = JcrUtils.getRepository("http://somehost:4502/crx");
        Session session = repository.login(new SimpleCredentials("admin",
      "admin".toCharArray()),"crx.default");       

私がここでやっていることが間違っていることを教えてください。あなたの助けに感謝。

4

0 に答える 0