为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

萧十郎 2023-08-09 15:54:13
我正在编写应用程序身份验证逻辑。在处理方法的某个时刻,我需要要求用户选择收到的值。如何将其重定向到我在 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();        }}}} 
查看完整描述

1 回答

?
繁花如伊

TA贡献2012条经验 获得超12个赞

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


<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

}

}



查看完整回答
反对 回复 2023-08-09
  • 1 回答
  • 0 关注
  • 99 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信