func registerComponents(configFile string, secureKeyFilePath string, privateKeyFilePath string, usersDataPath string) { conf, err := readConfigFile(configFile) if err != nil { fmt.Fprintf(os.Stderr, "Fatal error while reading configuration file '%v', error: %v\n", configFile, err) os.Exit(1) } wsContainer := restful.NewContainer() usersList := en.NewEntityManager() // amUsers := am.NewAmUsersList() signKey, verifyKey = app.TokenSetUp(privateKeyFilePath) loginKey = ss.GetSecureKey(secureKeyFilePath) st := libsecurity_restful.NewLibsecurityRestful() st.SetData(usersList, loginKey, verifyKey, signKey, nil) l := accounts_restful.NewAmRestful() l.SetData(st) if conf[amToken] == fullToken { l.RegisterFull(wsContainer) } else { // login is mandatory l.RegisterBasic(wsContainer) } um := en_restful.NewEnRestful() um.SetData(st) if conf[umToken] != noneToken { um.RegisterBasic(wsContainer) } /* a := acl_restful.NewAclRestful() a.SetData(st) if conf[aclToken] == basicToken || conf[appAclToken] == basicToken { a.RegisterBasic(wsContainer) } */ /* appAclPermissions := appAcl.NewAppPermissions() st.STool.SetAppAclData(appAclPermissions) aa := appAcl_restful.NewAppAclRestful() aa.SetData(appAclPermissions, st) if conf[appAclToken] == basicToken { aa.RegisterBasic(wsContainer) } */ p := otp_restful.NewOtpRestful() p.SetData(st) if conf[otpToken] == basicToken { p.RegisterBasic(wsContainer) } o := ocra_restful.NewOcraRestful() o.SetData(st) if conf[ocraToken] == basicToken { o.RegisterBasic(wsContainer) } pwd := password_restful.NewPwdRestful() pwd.SetData(st) if conf[passwordToken] == basicToken { pwd.RegisterBasic(wsContainer) } ss := storage_restful.NewSsRestful() ss.SetData(st) if conf[secureStorageToken] == basicToken { ss.RegisterBasic(wsContainer) } st.RegisterBasic(wsContainer) err = en.LoadInfo(usersDataPath, loginKey, usersList) if err != nil { fmt.Println("Load info error:", err) } runRestApi(wsContainer) }
"ibm-security-innovation/libsecurity-go/restful/accounts_restful" "ibm-security-innovation/libsecurity-go/restful/common_restful" ) const ( handleStorageCommand = iota ) type commandToPath map[int]string var ( commandsToPath = []comamndsToPathS{ {handleStorageCommand, "%v"}, } urlCommands = make(commandToPath) amRestful = accounts_restful.NewAmRestful() ) type comamndsToPathS struct { command int path string } func initCommandToPath() { for _, c := range commandsToPath { urlCommands[c.command] = c.path } } func (s ssRestful) setRoute(service *restful.WebService) { str := fmt.Sprintf(urlCommands[handleStorageCommand], StoragePath)