Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    [JAVA] Uso di jaas e collegamento con db

    Ciao a tutti,

    dovrei realizzare un programma in java che gestisce le varie funzionalità di una segreteria.

    Ovvero, io ho creato un database in cui ho inserito varie tabelle come l'orario dei prof, le assenze degli alunni etc e tramite il programma che devo sviluppare, in base al tipo di username con la quale mi autentico, devo poter riuscire a fare determinate operazioni oppure no.. come ad esempio un alunno può solo verificare quante assenze ha fatto, mentre il prof le può anche inserire.. oppure un prof può solo leggere l'orario che gli è stato assegnato mentre la segreteria può inserirlo e modificarlo.. etc..

    Le autenticazioni e autorizzazioni le devo realizzare con jaas ma ho diversi problemi.

    Riesco tranquillamente a collegarmi al mio database ma non ho ancora capito come fare per differenziare i vari tipi di utente.. ho letto in internet che devo modificare il file "jaas.policy" aggiungendo le grant necessarie ma qualunque tipo di grant io inserisco, è come se il programma le ignorasse completamente..

    così sempre in internet ho visto che per dire al programma che deve tener conto di quelle politiche, prima del login devo avviare un Security Manager, ma il problema è che quando avvio il security manager non riesco a raggiungere il db.. cioè il security manager blocca tutte le azioni che chiedo nonostante i grant che inserisco.. in pratica è come se il file jaas.policy fosse vuoto..

    magari sbaglio io a scrivere il codebase o qualcosa del genere..

    vi posto solo il file in questione per vedere se è corretto o meno:

    codice:
    grant codebase "file:/C:/Users/Erika/Desktop/Jaas_DB/bin/JassTest.jar"
    {
    permission java.lang.RuntimePermission "setSecurityManager";
    permission java.net.SocketPermission "127.0.0.1:3306", "accept";
    permission java.util.PropertyPermission "*", "read,write";
    permission javax.security.auth.AuthPermission "createLoginContext.Example";
    permission javax.security.auth.AuthPermission "doAsPrivileged";
    };
    se invece serve anche il resto del codice, lo posto successivamente..

    Spero che qualcuno mi possa aiutare perchè sono completamente bloccata..
    aspetto qualche risposta..

    Grazie.
    Erika

  2. #2
    Utente di HTML.it
    Registrato dal
    Oct 2010
    Messaggi
    2
    Ciao mi chiamo Fabio è ho riscontrato il tuo stesso problema . In poche parole dovrei realizzare anche io un applicazione jaas solo che ho trovato difficoltà nel reperire informazioni per implentarla. Ti chiedo se sei riuscita a risolvere il problema e se magari puoi spedirmi ulteriore codice per farmi un idea sul funzionamento di questa applicazione ! Ti ringrazio in anticipo

  3. #3
    Ciao Fabio,

    si alla fine sono riuscita bene o male a risolvere il mio problema. Non ho dato permessi in base all'utente ma in base alle varie classi in questo modo:

    codice:
    grant codebase "file:./Main.jar"
    {
       permission javax.security.auth.AuthPermission "createLoginContext.studente";
       permission javax.security.auth.AuthPermission "createLoginContext.professore";
       permission javax.security.auth.AuthPermission "createLoginContext.segreteria"; 
    };
    grant codebase "file:./LM.jar"
    { 
       permission java.net.SocketPermission "127.0.0.1:3306", "connect,resolve"; 
       permission java.io.FilePermission "${user.home}/-", "write";
       permission java.util.PropertyPermission "user.home", "read";
       permission javax.security.auth.AuthPermission "modifyPrincipals";
       permission javax.security.auth.AuthPermission "modifyPublicCredentials";
    };
    
    grant codebase "file:./App.jar"
    {
       permission java.net.SocketPermission "127.0.0.1:3306", "connect,resolve"; 
       permission java.io.FilePermission "${user.home}/-", "write";
       permission java.util.PropertyPermission "user.home", "read";
    };
    ma la cosa importante che devi fare per far funzionare queste grant è indicare i file .jar nel classpath del tuo pc.. puoi farlo in due diversi modi:

    1-avvi il programma da riga di comando spostandoti nella cartella in cui c'è il main e in cui ci sono i .jar specificando il classpath giusto, ad esempio:
    codice:
    java -classpath App.jar;LM.jar;Main.jar MioProgramma //su Windows
    java -classpath App.jar:LM.jar:Main.jar MioProgramma //su Linux
    2-modifichi la variabile d'ambiente CLASSPATH:
    in Windows devi andare su Pannello di Controllo/Sistema/Avanzate/Variabili d'ambiente e trovare e modificare CLASSPATH aggiungendo il percorso dei tuoi codebase separati l'uno dall'altro da un ;
    in Ubuntu(dove ho lavorato io) devi modificare un file nascosto presente nella home dell'utente che si chiama .bashrc.. ovvero da terminale devi spostarti nella home e digitare
    codice:
    gedit .bashrc
    quando si apre il file inserisci un'ultima riga scrivendo:
    codice:
    export CLASSPATH="/home/nomeutente/workspace/MioProgramma/App.jar:/home/nomeutente/workspace/MioProgramma/LM.jar:/home/nomeutente/workspace/MioProgramma/Main.jar"
    salvi e chiudi e riapri il terminale!

    Cmq capisco perfettamente quando mi dici che non hai trovato quasi nulla di documentazione quindi se vuoi ti invio volentieri il mio codice, anche se non è completamente finito..

    Se mi dai una mail te lo invio però visto che è un po' complesso, se vuoi puoi semplicemente dirmi cosa ti serve e vedo se riesco a darti una mano.

    Fammi sapere.
    Ciao.

    Erika

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2010
    Messaggi
    2
    Ciao e grazie per la rapida risposta . In poche parole dovrei realizzare un applicazione di gestione di segreteria con autenticazione jaas....Mi trovo molto in difficoltà in quanto il corso di questo esame è stato chiuso e in pratica mi devo arrangiare da solo.... cmq la mia email è :
    passulux@gmail.com

  5. #5
    mmm.. penso proprio che dobbiamo fare lo stesso esame! xDxDxD

    cmq ti ho appena mandato una mail..
    Ciao ciao

    Erika

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.