Веб-приложение не работает в Edge Browser 41 - PullRequest
0 голосов
/ 16 ноября 2018

Я работаю над интранет-веб-приложением. он разработан с использованием Strust2 и работает на сервере weblogic 12c. Приложение работает в среде разработки без каких-либо проблем IE (11) и Edge (41) браузер Microsoft. Но после развертывания Production он работает только в IE (11). Он не работает на Edge. После этого мы можем запустить страницу входа, но не можем перейти на Edge. Edge браузер консоли мы можем увидеть ниже ошибка.

CSP14321 Resource violated directive 'default-src 'self'' in Content-security-Policy:inline script https://xx.xxx.x.xx/dms/login.action at line
19 column 30.Resource will be blocked

Примечание. Наше веб-приложение поддерживает работу с IE11 и Edge.

Я пробовал с другим подходом, но не смог перейти со страницы входа 1.и удалить метатеги вроде

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

2.добавить метатеги типа

<meta http-equiv="Content-Security-Policy" content="default-src 'self'"/>
Подход

выше не работает. Для изменения политики безопасности содержимого нет файлов конфигурации в нашем приложении. Пожалуйста, помогите с этим

Это страница входа.

<%@ taglib prefix="s" uri="/struts-tags"%>
<%@ taglib prefix="sx" uri="/struts-dojo-tags"%>

<%@ page contentType="text/html;charset=UTF-8" language="java"%>
<%@ page import="tvm.ka.TvsGlobals"%>
<%@ page errorPage="/tvs/ka/common/KvsCommonError.jsp"%>


<head>
<title><s:text name="title.login" /></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" href="<%=KvsConfigMgr.strCSS%>" type="text/css" />
<script language="JavaScript" src="<%=kvsConfigMgr.strJS%>KvsCommon.js">

</script>
<script language="JavaScript" src="<%=KvsConfigMgr.strJS%>KvsLogin.js">

</script>
<script language="JavaScript">
    var MSG_USERID = "<s:text name="msg.login.userid"/>";
    var MSG_PASSWORD = "<s:text name="msg.login.password"/>";
</script>
</head>
<body background="<%=KvsConfigMgr.strLstBg%>" leftmargin="0"
    topmargin="0" marginwidth="0" marginheight="0" onLoad="focusFirst()">
    <s:form action="login" method="POST">
        <table border="0" cellspacing="0" cellpadding="0" width="100%">
            <tr>
                <td valign="top"><div align="center">
                        <table width="100%" border="0" cellspacing="0" cellpadding="0">
                            <tr>
                                <td colspan="2" background="<%=KvsConfigMgr.strIMG%>topbg.gif">
                                    <table width="100%" border="0" cellpadding="0" cellspacing="0"
                                        background="<%=KvsConfigMgr.strIMG%>topbg.gif">
                                        <tr>
                                            <td><table width="100%" border="0" cellpadding="0"
                                                    cellspacing="0">
                                                    <tr>
                                                        <td width="13%"
                                                            background="<%=KvsConfigMgr.strIMG%>logo_bg.jpg"><img
                                                            src="<%=KvsConfigMgr.strIMG%>default_01.jpg" width="133"
                                                            height="77" alt=""></td>
                                                        <td width="87%"
                                                            background="<%=KvsConfigMgr.strIMG%>top_bg.jpg"><img
                                                            src="<%=KvsConfigMgr.strIMG%>default_02.jpg" width="645"
                                                            height="77" alt=""></td>
                                                    </tr>
                                                </table></td>
                                        </tr>
                                    </table>
                                </td>
                            </tr>
                        </table>
                    </div>
                    <div align="left"></div></td>
            </tr>
        </table>
        <table border="0" cellspacing="0" cellpadding="0" width="100%">
            <tr>
                <td width="40%">&nbsp;</td>
                <td class="errorText">
                    <%-- <s:if
                                        test="${not empty ${KmsGlobals.GLOBAL_ERR_MSG_LIST}.null}"
                                        scope="request">
                                        <s:iterator value="${KmsGlobals.GLOBAL_ERR_MSG_LIST}.null"
                                            indexId="count" id="errMsg" type="java.lang.String">
                                            <s:property value="errMsg.null" />
                                            <br>
                                        </s:iterator>
                                    </s:if> --%> <s:if test="hasActionErrors()">
                        <div class="error">
                            <s:actionerror />
                        </div>
                    </s:if>
                </td>
            </tr>
            <tr>
                <td class="bodyTextSmall">&nbsp;</td>
                <td>
                    <table border="0" cellspacing="0" cellpadding="5">
                        <tr>
                            <td>To begin, please key in your user id and<br />password
                                below, and click on login.
                            </td>
                        </tr>
                    </table>
                </td>
            </tr>
            <tr>
                <td>&nbsp;</td>
                <td>
                    <table border="0" cellspacing="0" cellpadding="5">
                        <tr>
                            <td><img src="<%=KvsConfigMgr.strIMG%>tran.gif" width="80"
                                height="8" /></td>
                            <td><img src="<%=KvsConfigMgr.strIMG%>tran.gif" width="150"
                                height="8" /></td>
                            <td><img src="<%=KvsConfigMgr.strIMG%>tran.gif" width="80"
                                height="8" /></td>
                        </tr>
                        <tr>
                            <td class="bodyTextBold">User ID</td>
                            <td><input type="text" name="strUserId" size="20"
                                tabindex="1" /></td>
                            <td>&nbsp;</td>
                        </tr>
                        <tr>
                            <td class="bodyTextBold">Password</td>
                            <td>
                                <%--
                   <!--html:password property="strPasswd" autocomplete="off" size="20" tabindex="2"/ -->
                         I-WAPT-8 Password autocomplete attribute was enabled
                         Application Penetration Test Fix
                  --%> <input type="password" name="strPasswd"
                                autocomplete="off" size="20" tabindex="2" />
                            </td>
                            <td><input class="button" style="width: 70px" type="submit"
                                value="Login" onClick="return validate()" tabindex="3" /></td>
                        </tr>
                        <tr>
                            <td colspan="3" class="errorText">For authorised use only.
                                Unauthorised use is strictly prohibited.</td>
                        </tr>
                    </table>
                </td>
            </tr>
        </table>
        <%-- <s:hidden name="dispatch" value="login" /> --%>
        <input type="hidden" name="dispatch" value="login" />

    </s:form>

    <div id="version-tag"><%=KvsConfigMgr.strVer%></div>

    <style>
#version-tag {
    position: absolute;
    bottom: 0;
    left: 0;
    FONT-WEIGHT: normal;
    FONT-SIZE: 11px;
    COLOR: rgba(0, 0, 0, 0.6);
    FONT-FAMILY: Arial, Verdana, Helvetica, sans-serif;
    vertical-align: text-top;
    border-color: #0085E0;
}
</style>
</body>

1 Ответ

0 голосов
/ 16 ноября 2018

Наряду с content-security-policy s вы не можете использовать встроенный Javascript, например onLoad="focusFirst()" и

<script language="JavaScript">
    var MSG_USERID = "<s:text name="msg.login.userid"/>";
    var MSG_PASSWORD = "<s:text name="msg.login.password"/>";
</script>

https://developer.chrome.com/extensions/contentSecurityPolicy#JSExecution

Встроенный код Javascript просто не будет выполняться.

Вместо этого создайте файл Javascript с таким кодом:

document.addEventListener('load', focusFirst);

Убедитесь, что функция focusFirst известна на этом этапе.

В зависимости от того, что focusFirst может улучшить производительность, если вместо этого присоединить прослушиватель к событию DOMContentLoaded (которое срабатывает, когда анализируется весь HTML, тогда как load запускается намного позже, когда все связанные ресурсы, такие как изображения,и т. д.).

Обратите внимание, что встроенные блоки <script> также не будут выполняться с политикой безопасности содержимого active.

...