Sto lavorando su un'applicazione che aveva i requisiti di base per l'autenticazione nella prima versione (ovvero penso al login di un singolo amministratore), e ora ho il requisito di estenderlo per consentire a utenti, ruoli e permessi diversi.
È stato suggerito che io tenti di integrarmi con un prodotto esistente che faccia questo genere di cose come un server separato per l'autenticazione di base, o che si estenda anche all'autenticazione del secondo fattore. L'applicazione su cui sto lavorando è una piccola applicazione scaricabile che dovrebbe essere facile da configurare ed eseguire. L'altro prodotto è grande e 'enterprisy', che richiede l'installazione manuale, che potrei provare a fare automaticamente per quello di cui ho bisogno (forse).
Il grosso problema è che, quando descritto come un set di funzionalità di ciò che vorremmo fare nel mio prodotto, si adatta perfettamente a ciò che fa l'altro prodotto, ma non è in una forma che io possa usarlo. La gestione vuole l'integrazione con l'altro prodotto, perché sembra intuitivo che potremmo sfruttarla, ma l'altro prodotto non è in una forma che potrei usare. Pensandoci in termini di MVC, non penso che ci sia un modo per separare la vista dal modello.
L'altra cosa di cui sono preoccupato, che è accaduto in passato, è che se mi viene chiesto di integrarmi con questo, sarò quello che fa tutto il lavoro di integrazione, e se qualcosa non può essere fatto dall'altro prodotto, quindi sono solo sfortunato. L'integrazione con il mio prodotto è secondaria rispetto a qualsiasi altra cosa l'altro team vorrebbe, e il mio team non è un "cliente", quindi c'è poca motivazione a far sì che possano risolvere o aggiungere materiale per noi.
Quindi, in sintesi, la mia domanda è: Non voglio reinventare la ruota, ma dovrei provare a forzare un piolo quadrato in un buco rotondo cercando di utilizzare un prodotto che quello di cui ho bisogno, ma non in una forma facile da riutilizzare?
modifica: sto usando Java, quindi Spring Security è un'opzione.