我想保护我的webapp许可证.当请求webapp的任何页面/资源时,我想首先检查许可证.如果未找到许可证,那么我想重定向到许可证上载页面.
我创建了一个过滤器,它映射到我可以检查许可证的所有请求,并在必要时重定向.问题是我的webapp具有登录验证的安全约束.有关详细信息,请参阅最后的web.xml.
由于安全性约束,所有请求首先被登录身份验证拦截,然后转发到我的过滤器.但是,我想在登录之前检查许可证.
这是我问过的一个相关问题.
优先考虑安全约束的过滤器似乎是不可能的.所以,我想问一下,有什么其他方法可以解决这个用例吗?
web.xml中
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
id="WebApp_ID" version="2.5">
<display-name>Tango</display-name>
<filter>
<filter-name>SalsaValidationFilter</filter-name>
<filter-class>net.semandex.salsa.validationFilters.SalsaValidationFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>SalsaValidationFilter</filter-name>
<url-pattern>/*</url-pattern>
<!-- <servlet-name>SalsaValidationServlet</servlet-name> -->
<dispatcher>REQUEST</dispatcher>
</filter-mapping>
<session-config>
<session-timeout>20</session-timeout>
</session-config>
<security-constraint>
<web-resource-collection>
<web-resource-name>Login page images</web-resource-name>
<url-pattern>/images/salsadb-logo2.png</url-pattern>
<url-pattern>/images/salsa-icon.png</url-pattern>
<url-pattern>/images/shadow_box.png</url-pattern>
<url-pattern>/images/header.png</url-pattern>
<url-pattern>/images/bg.png</url-pattern>
<url-pattern>/css/splash.css</url-pattern>
<url-pattern>/WEB-INF/licenseValidation.html</url-pattern>
<url-pattern>/auth/licenseValidation.html</url-pattern>
</web-resource-collection>
</security-constraint>
<security-constraint>
<web-resource-collection>
<web-resource-name>The entire webapp</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>SalsaUser</role-name>
</auth-constraint>
</security-constraint>
<security-role>
<role-name>SalsaUser</role-name>
</security-role>
<login-config>
<auth-method>FORM</auth-method>
<form-login-config>
<form-login-page>/auth/login.jsp</form-login-page>
<form-error-page>/auth/loginError.jsp</form-error-page>
</form-login-config>
<realm-name>mongo_login</realm-name>
</login-config>
</web-app>
Run Code Online (Sandbox Code Playgroud) 我看到人们在使用光标后关闭光标.我还在文档中读到服务器在10分钟不活动后关闭光标.
我在网上搜索但没找到合适的答案.我是数据库和MongoDB的新手.
为什么需要关闭光标?
我是Java语言的新手,所以如果它很明显,请原谅。
可以说我有一个for-in循环,如下所示...
for( var key in myObj ){
alert("key :" + myObj[key] ); // accessing current key-value pair
//how do I access previous element here?
}
Run Code Online (Sandbox Code Playgroud)
是否可以在for-in循环中访问上一个或下一个键/值对?
我有一个网格.我想在一些网格单元格中显示多行.以下是我生成的div,它有两行文本.但这并没有呈现第二行,即"测试新线".
<div class="x-grid3-cell-inner x-grid3-col-event x-unselectable" style="height:134px;line-height:134px;" unselectable="on">
<div>
<a href="some link">XYZ funding round: Series C</a> (Funding Round)
<br>
test new line
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
这是一个extjs 3.4网格.
知道为什么这不会渲染两行吗?
我有html按钮"classA","classB"和"classC",我将onclick处理函数分配给我,如下所示.
var classA = document.getElementById('classA');
classA.onclick = filterByClassA;
var classB = document.getElementById('classB');
classB.onclick = filterByClassB;
var classC = document.getElementById('classC');
classC.onclick = filterByClassC;
Run Code Online (Sandbox Code Playgroud)
这三个函数做同样的事情,唯一不同的是类.那么,我可以为这些按钮分配一个功能,每个按钮调用不同的参数.像下面的东西
var classA = document.getElementById('classA');
classA.onclick = filterByClass('classA');
var classB = document.getElementById('classB');
classB.onclick = filterByClass('classB');
var classC = document.getElementById('classC');
classC.onclick = filterByClass('classC');
Run Code Online (Sandbox Code Playgroud)
我知道这是一个函数调用而不是赋值,这是错误的,但有没有办法可以实现这一点,即同时分配函数和传递参数但不调用它?
我有以下地图
Map<String, Map<String, Long>>
Run Code Online (Sandbox Code Playgroud)
可以通过java文件中的以下方法访问此映射.
public List<Entry<String, List<Entry<String, Long>>>> getByEventTypeSorted() {
List<Entry<String, List<Entry<String, Long>>>> ret = new ArrayList<Entry<String, List<Entry<String, Long>>>>();
ret.addAll((Collection<? extends Entry<String, List<Entry<String, Long>>>>) byEventType.entrySet());
return ret;
}
Run Code Online (Sandbox Code Playgroud)
因此,我转换 Map<String, Map<String, Long>>成List<Entry<String, List<Entry<String, Long>>>>并将其返回.
现在,在我的tml文件中,我试图像这样循环它.
<tr t:type="Loop" t:source="summarizer.byEventTypeSorted" t:value="entry">
<td style="border: 1px solid #EEEEEE; padding: 3px">${entry.key}</td>
<td style="border: 1px solid #EEEEEE; padding: 3px" t:type="Loop" t:source="${entry.value}" t:value="entry2">
${entry2.key}
</td>
</tr>
Run Code Online (Sandbox Code Playgroud)
对应的java文件具有以下属性.
@Property
private Entry<String,Long> entry;
@Property
private Entry<String,Long> entry2;
Run Code Online (Sandbox Code Playgroud)
当我运行上面的代码.生成以下异常.
Failure writing parameter 'value' of component ConceptSummaries:loop_1: …Run Code Online (Sandbox Code Playgroud) 我无法理解这一点.
以下是表达式使用OR运算符
var subCond1 = adj.getData('relationEnabled') == 'true' || adj.getData('unhideIfHidden') || adj.getData('hlFixed') == 'true';
Run Code Online (Sandbox Code Playgroud)
我期待它,因为它是OR操作,它应该返回布尔值true/false,但结果我得到字符串'false'.
有人能解释一下吗?
假设我们在数据库中有以下结构的记录。
{
"_id": 1234,
"tags" : [ "t1", "t2", "t3" ]
}
Run Code Online (Sandbox Code Playgroud)
现在,我想检查数据库是否包含带有数组中指定的任何标签的记录 tagsArray which is [ "t3", "t4", "t5" ]
我了解$in运算符,但我不仅想知道数据库中的任何记录是否具有tagsArray中指定的任何标记,还想知道数据库中记录的哪个标记与tagsArray中指定的任何标记相匹配。(即在上述记录中为t3)
也就是说,我想比较两个数组(一个记录,另一个由我给定),并找出公共元素。
我需要将此表达式与查询中的许多表达式一起使用,因此投影运算符(例如$,$ elematch等)不会有太大用处。(或者有没有一种方法可以使用它而不必遍历所有记录?)
我想我可以使用$where运算符,但我认为这不是最好的方法。如何解决这个问题?