0

Grails 上のデータベース システムにモバイル デバイスをログインさせる必要があります。モバイル デバイスは XML ファイルを送信しており、デバイスとデータベース アプリケーション間のデータ転送として使用されます。最初にやらなければならないことは、送信された XML ファイルに基づくデータベースの認証です。Shiro をセキュリティ フレームワークとして作成したので、今度は XML 読み取りサービスからサインインする必要があります。誰かがこれについて私を助けてくれますか?

ここにそれを機能させるための私の試みがあります。import shiro.ShiroRole import shiro.ShiroUser

class LoginService {

 def shiroSecurityService

 def AuthController

 def params

 def confirmation() {

    def path = System.properties['base.dir']    

 def file = new File (path+"/web-app/xml/ConfirmationRequest.xml") 

 def records = new XmlSlurper().parse(file)

   if(records.user.username=='klemens'&&records.user.password=='kot12345')
    {
        params.username='klemens'
        params.password='kot12345'
        AuthController.signIn(params)
    }

  }
}

もちろん、それはしません、それはこのエラーでハングアップします:

ERROR context.GrailsContextLoader  - Error executing bootstraps: Cannot get property 'params' on null object
Message: Cannot get property 'params' on null object
4

1 に答える 1

0

わかりました、Shiro SecurityUtils クラスに依存し、次のようなサービスでの AuthController の使用を却下する必要があると思います。

 def confirmation() {


    def path = System.properties['base.dir']    

    def file = new File (path+"/web-app/xml/ConfirmationRequest.xml") 

    def records = new XmlSlurper().parse(file)
    Subject currentUser = SecurityUtils.getSubject()
    UsernamePasswordToken token = new UsernamePasswordToken(records.user.username, records.user.password);
    currentUser.login(token);
    currentUser.isAuthenticated()
  }

  }

マニュアルを読むことを忘れないでください

于 2012-10-02T12:07:36.697 に答える