Example #1
0
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)