【问题标题】:App engine: add constraint to static html file应用引擎:向静态 html 文件添加约束
【发布时间】:2016-06-15 15:34:30
【问题描述】:

我有一个我只希望管理员可以访问的静态 html 文件。所以我在我的web.xml中执行以下操作

<servlet>
    <servlet-name>editor</servlet-name>
    <jsp-file>/editor.html</jsp-file>
</servlet>

<servlet-mapping>
    <servlet-name>editor</servlet-name>
    <url-pattern>/editor.html</url-pattern>
</servlet-mapping>
<security-constraint>
    <web-resource-collection>
        <web-resource-name>editor</web-resource-name>
        <url-pattern>/editor.html</url-pattern>
    </web-resource-collection>
    <auth-constraint>
        <role-name>admin</role-name>
    </auth-constraint>
</security-constraint>

但我不断收到错误。控制台读取

com.google.appengine.tools.admin.AppVersionUpload checkEndpointsServingStatusResult 严重:端点配置不 更新。应用程序在 Google Cloud Endpoints 时返回错误 服务器试图与之通信。

然后我尝试将每个.html 更改为.jsp,包括实际的静态文件。当我这样做时,部署工作没有错误,但是当我尝试使用mydomain/editor.jsp 访问我的页面时,我可以使用NOT_FOUND

错误日志:

java.lang.IllegalStateException: No forced path servlet for /editor.html
    at org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:679)
    at org.mortbay.jetty.servlet.Context.startContext(Context.java:140)
    at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1250)
    at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:517)
    at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:467)
    at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
    at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.createHandler(AppVersionHandlerMap.java:206)
    at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.getHandler(AppVersionHandlerMap.java:179)
    at com.google.apphosting.runtime.jetty.JettyServletEngineAdapter.serviceRequest(JettyServletEngineAdapter.java:136)
    at com.google.apphosting.runtime.JavaRuntime$RequestRunnable.run(JavaRuntime.java:469)
    at com.google.tracing.TraceContext$TraceContextRunnable.runInContext(TraceContext.java:439)
    at com.google.tracing.TraceContext$TraceContextRunnable$1.run(TraceContext.java:446)
    at com.google.tracing.CurrentContext.runInContext(CurrentContext.java:256)
    at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContextNoUnref(TraceContext.java:310)
    at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContext(TraceContext.java:302)
    at com.google.tracing.TraceContext$TraceContextRunnable.run(TraceContext.java:443)
    at com.google.apphosting.runtime.ThreadGroupPool$PoolEntry.run(ThreadGroupPool.java:235)
    at java.lang.Thread.run(Thread.java:745)

【问题讨论】:

    标签: java html jsp google-app-engine web.xml


    【解决方案1】:

    jsp文件应该和真实的一样。 (即/editor.jsp)。您应该可以通过https://myprojectID.appspot.com/editor 访问

    (注意 - 我删除了 .html,但您可以轻松地将其添加回两个 url-pattern 中。)

    <servlet>
        <servlet-name>editor</servlet-name>
        <jsp-file>/editor.jsp</jsp-file>
    </servlet>
    
    <servlet-mapping>
        <servlet-name>editor</servlet-name>
        <url-pattern>/editor</url-pattern>
    </servlet-mapping>
    
    <security-constraint>
        <web-resource-collection>
            <web-resource-name>editor</web-resource-name>
            <url-pattern>/editor</url-pattern>
        </web-resource-collection>
    
        <auth-constraint>
            <role-name>admin</role-name>
        </auth-constraint>
    
        <user-data-constraint>  <!-- Always a good idea to add this -->
            <transport-guarantee>CONFIDENTIAL</transport-guarantee>
        </user-data-constraint>
    
    </security-constraint>
    

    【讨论】:

    • 我想将安全约束设置为默认值index.html,但它不起作用&lt;security-constraint&gt; &lt;web-resource-collection&gt; &lt;web-resource-name&gt;index&lt;/web-resource-name&gt; &lt;url-pattern&gt;/index/*&lt;/url-pattern&gt; &lt;url-pattern&gt;http://aaaaaaaaaa.appspot.com/&lt;/url-pattern&gt; &lt;/web-resource-collection&gt; &lt;auth-constraint&gt; &lt;role-name&gt;admin&lt;/role-name&gt; &lt;/auth-constraint&gt; &lt;/security-constraint&gt;
    • url-pattern 不需要域。即它应该是&lt;url-pattern&gt;&lt;/url-pattern&gt;,更多信息请参见stackoverflow.com/questions/15385596/…
    猜你喜欢
    • 2015-05-06
    • 1970-01-01
    • 1970-01-01
    • 2015-02-25
    • 2011-08-07
    • 2021-07-31
    • 2012-06-05
    • 2016-01-17
    • 1970-01-01
    相关资源
    最近更新 更多