gpt4 book ai didi

java - OpenAm 如何在回调中重定向到模板(处理方法)

转载 作者:行者123 更新时间:2023-12-02 00:34:03 24 4
gpt4 key购买 nike

我正在编写应用程序身份验证逻辑。在处理方法的某个时刻,我需要要求用户选择收到的值。

如何将其重定向到我在 OpenAm 中创建的选择页面?另外这个页面应该位于 openAM 中的什么位置?如何向该页面传递必要的值供用户选择?

这是我的模块:

<ModuleProperties moduleName="MyAuth" version="1.0" >
<Callbacks length="0" order="1" timeout="600" header="#NOT SHOWN#" template="readme.html"/>

<Callbacks length="2" order="2" timeout="600" header="#TO BE SUBSTITUTED#" template="readme.html">
<NameCallback isRequired="true" >
<Prompt>Username</Prompt>
</NameCallback>
<PasswordCallback echoPassword="false" >
<Prompt>Password</Prompt>
</PasswordCallback>
</Callbacks>

</ModuleProperties>

这是我的类 MyAuth:

public class MyAuth extends AMLoginModule {
// same code here

@Override
public int process(Callback[] callbacks, int state) throws LoginException {

//same code logic here
switch (state) {
//...
case GET_TEMPLATE:
// in this place i try redirect to templete readme.html
Callback[] callback = getCallback(1);
try {
getCallbackHandler().handle(callback);
} catch (IOException e) {
e.printStackTrace();
} catch (UnsupportedCallbackException e) {
e.printStackTrace();
}
}
}

}

最佳答案

要检索其他输入,请向模块添加另一个状态。

<ModuleProperties moduleName="MyAuth" version="1.0" >
<Callbacks length="0" order="1" timeout="600" header="#NOT SHOWN#" template="readme.html"/>

<Callbacks length="2" order="2" timeout="600" header="#TO BE SUBSTITUTED#">
<NameCallback isRequired="true" >
<Prompt>Username</Prompt>
</NameCallback>
<PasswordCallback echoPassword="false" >
<Prompt>Password</Prompt>
</PasswordCallback>
</Callbacks>

<Callbacks length="1 order="3" timeout="600" header="#TO BE SUBSTITUTED#">
<NameCallback isRequired="true" >
<Prompt>Additional Input</Prompt>
</NameCallback>
</Callbacks>
</ModuleProperties>

处理auth模块代码中的状态

public class MyAuth extends AMLoginModule {
// same code here

@Override
public int process(Callback[] callbacks, int state) throws LoginException {

//same code logic here

switch (state) {
case AUTHENTICATE:

return GET_ADDITIONAL_DATA;
//...
case GET_ADDITIONAL_DATA:
final String additionalData = ((NameCallback) callbacks[0]).getName();
// handle additional data
}
}

}

关于java - OpenAm 如何在回调中重定向到模板(处理方法),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57991467/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com