小编Thr*_*did的帖子

将值传递给 Shiro ini 中的枚举属性

我正在使用 JDBC 领域并在 SQL 中存储身份验证数据。我将盐存储在用户表中并依赖于 DEFAULT_SALTED_AUTHENICATION_QUERY。要调用该查询,我必须设置 SaltStyle。

因此,我需要通过 INI 将 SaltStyle.COLUMN 枚举值传递给 JdbcRealm。

SaltStyle 不是一个类,所以我无法创建引用

无论我通过什么都会产生这个错误 = org.apache.shiro.config.UnresolveableReferenceException:

无法从文档中的大量搜索或参考中找到示例。任何帮助深表感谢。

#====================================================================
# Shiro INI configuration
#
# ===================================================================
[main]
JdbcRealm=org.apache.shiro.realm.jdbc.JdbcRealm
JdbcRealm.permissionsLookupEnabled = true 
sha256Matcher = org.apache.shiro.authc.credential.HashedCredentialsMatcher
sha256Matcher.hashAlgorithmName=SHA-256
sha256Matcher.hashIterations=1
JdbcRealm.credentialsMatcher = $sha256Matcher
JdbcRealm.saltStyle= enum expression needed here
Run Code Online (Sandbox Code Playgroud)

这是 JdbcRealm 中的属性

public void setSaltStyle(SaltStyle saltStyle) {
    this.saltStyle = saltStyle;
    if (saltStyle == SaltStyle.COLUMN && authenticationQuery.equals 
             (DEFAULT_AUTHENTICATION_QUERY)) {
        authenticationQuery = DEFAULT_SALTED_AUTHENTICATION_QUERY;
    }
}
Run Code Online (Sandbox Code Playgroud)

java ini shiro

5
推荐指数
1
解决办法
1151
查看次数

.getElementById的内联SVG和HTML DOM范围

问题空间:

我有一个SVG地图,我使用JQUERY Ajax嵌入到html内联.然后我使用java脚本来处理svg对象中的许多元素,以更改属性并根据数据系列添加事件侦听器.数据和地图是互动的.用户可以通过多种排列来改变状态.

我也在使用JQUERY UI 1.10.3标签

有很多类别.因此,根据演示文稿,可能在同一个选项卡上有多个svg地图副本,并且许多不同的选项卡具有相同的svg地图.

svg文档的每个副本都具有相同的元素ID.我遇到的问题是元素ID在HTML DOM中相互冲突.因此,唯一可寻址的元素是svg对象中首先出现在HTML文档中的元素.

我的问题是:

我是否需要为svg对象的每个实例创建唯一的元素ID?或者有没有办法在HTML DOM中为svg对象设置范围和上下文?

例:

每个包含div的都有一个唯一的ID,我用它来插入svg文档并检索SVG文档.

    <div id="svgMap_div_1" class="cIG" style="height: 500px; width: 750px"></div>
Run Code Online (Sandbox Code Playgroud)

用于加载从ajax(mimeType ="image/svg + xml")接收的svg文档的代码:

    document.getElementById('svgMap_div_1').appendChild(svgXMLObject.documentElement)
Run Code Online (Sandbox Code Playgroud)

用于检索svg文档的代码.svgDoc的声明是它实现的函数的本地声明,并且是唯一的.

    var svgDoc = document.getElementById('svgMap_div_1').ownerDocument;
Run Code Online (Sandbox Code Playgroud)

用于更新各个元素的代码.当相同的svg对象(子元素具有相同的ID)位于同一个HTML DOM中时,这个javascript将始终寻址首先出现在HTML DOM中的svg对象,即使它是从离散div中检索的,例如id =' svgMap_div_2' .

    var svgElem = svgDoc.getElementById('elemID');
    svgElem.setAttribute("fill", '#0000FF');
Run Code Online (Sandbox Code Playgroud)

我相信问题的根源是使用ownerDocument检索svgDoc.它不是创建具有范围和上下文的离散对象,而是遍历整个DOM,以便DOM是上下文.请参阅IDE中的代码参考:

HTMLDocument Node.ownerDocument

    Property ownerDocument http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/ecma-script-binding.html 
    See Also:
    Document
    Since:
    Standard ECMA-262 3rd. Edition
    Level 2 Document Object Model Core Definition.
    @type
    Document
Run Code Online (Sandbox Code Playgroud)

如果必须的话,我可以开发一个工作算法来使所有的id都是唯一的,但我确实想找到更好的方法.我已经尝试了其他方法和属性来获得一个有效的svg文档对象,但这些都不适用于我.

下面是一个工作示例,用于演示当两个svg对象位于同一页面上的不同div中时会发生什么.所有四种组合都会改变第一个矩形的颜色.如果您将第二个对象中的rect的ID更改为"box-b"并相应地对其进行寻址('bbox_div','box-b'),则两个矩形将彼此独立地操作.

<script type='text/javascript'>
function colorBox(divID, svgElem, colorHex) {
    /* DOM  This is the …
Run Code Online (Sandbox Code Playgroud)

html javascript jquery svg dom

5
推荐指数
1
解决办法
3244
查看次数

如何为Apache Shiro配置threashold过度失败的登录尝试?

Apache Shiro文档暗示了一些所需的功能,用于捕获连续失败的登录尝试(等等),但是,我找不到具体的文档.目前我可以执行currentUser.login(令牌); 无效的pw无限次,并且不会陷阱并抛出此错误.我正在努力寻找在源中实现的地方.

这实际上有用吗?是否在shiro.ini中配置了阈值?任何人都可以指向我的文档(或确认它不存在)?

谢谢

环境细节:Shiro核心1.2.1和jdbc领域

开始文档步骤3:处理成功或失败如果登录方法安静地返回,那就是它 - 我们已经完成了!主题已经过身份验证.应用程序线程可以不间断地继续,对SecurityUtils.getSubject()的所有进一步调用将返回经过身份验证的Subject实例,对subject.isAuthenticated()的任何调用都将返回true.

但是如果登录尝试失败会发生什么?例如,如果最终用户提供了错误的密码,或者访问了系统太多次并且他们的帐户被锁定了怎么办?

Shiro具有丰富的运行时AuthenticationException层次结构,可以准确指示尝试失败的原因.您可以在try/catch块中包装登录并捕获您希望的任何异常并相应地对它们做出反应.例如:

try {
    currentUser.login(token);
} catch ( UnknownAccountException uae ) { ...
} catch ( IncorrectCredentialsException ice ) { ...
} catch ( LockedAccountException lae ) { ...
} catch ( **ExcessiveAttemptsException** eae ) { ...
} ... catch your own ...
} catch ( AuthenticationException ae ) {
    //unexpected error?
}

//No problems, continue on as expected...
Run Code Online (Sandbox Code Playgroud)

如果其中一个现有的异常类不能满足您的需求,可以创建自定义AuthenticationExceptions来表示特定的故障情况//没有问题,按预期继续...结束Documentaion

shiro

4
推荐指数
1
解决办法
2573
查看次数

标签 统计

shiro ×2

dom ×1

html ×1

ini ×1

java ×1

javascript ×1

jquery ×1

svg ×1