Hirdetés

Keresés

Új hozzászólás Aktív témák

  • smallmer
    őstag

    A javafx csomagban van Media ès MediaPlayer osztály, azokkal könnyedèn tudsz mp3 kiterjesztèsű fájlt kezelni.

    köszönöm szépen :R

  • disy68
    aktív tag

    Sziasztok.

    SpringBoot alkalmazásból szeretnék elérni egy Mysql adatbázist, de ezt a hibaüzenetet kapom:

    java.sql.SQLException: Unable to load authentication plugin 'caching_sha2_password'.

    A program properties fájlja:

    datasource:
    url: jdbc:mysql://localhost:3307/blogDB?useSSL=false
    username: username
    password: password
    tomcat:
    connection-properties: useUnicode=true;characterEncoding=utf-8
    max-wait: 20000
    max-active: 50
    initialization-mode: always

    jpa:
    hibernate:
    ddl-auto: create
    show-sql: true
    properties:
    hibernate.dialect: org.hibernate.dialect.MySQL5Dialect

    Ha a useSSL-t true-ra állítom akkor pedig ezzel a hibával száll el:

    com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure

    The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.

    Őszintén szólva, nem igazán értem mi lehet a probléma.
    Az első hibára az interneten javasolt megoldás nekem nem működött, ugyan úgy dobja a hibát.
    (Javasolt megoldás : )

    ALTER USER 'student'@'localhost' IDENTIFIED WITH mysql_native_password BY 'pass123';

    Az adatbázis localhost-on megy, dockerbe, a default 3306-os portot más adatbázis miatt át mappeltem 3307-re. MySQL Workbench-el elérem az adatbázist, csak programból nem.

    Tipp ? :W

    Szia, nézd meg mi a verziója a mysql-connectornak, amit a spring akar használni, valószínűleg egy régebbi lesz, ami nem támogatja az újabb jelszó kezelési eljárást. Nem tudom mit használsz, maven-t/gradle-t, de adj hozzá dependency-ként egy frissebb verziót pl. ezt.

  • htc07
    addikt

    Sziasztok.

    SpringBoot alkalmazásból szeretnék elérni egy Mysql adatbázist, de ezt a hibaüzenetet kapom:

    java.sql.SQLException: Unable to load authentication plugin 'caching_sha2_password'.

    A program properties fájlja:

    datasource:
    url: jdbc:mysql://localhost:3307/blogDB?useSSL=false
    username: username
    password: password
    tomcat:
    connection-properties: useUnicode=true;characterEncoding=utf-8
    max-wait: 20000
    max-active: 50
    initialization-mode: always

    jpa:
    hibernate:
    ddl-auto: create
    show-sql: true
    properties:
    hibernate.dialect: org.hibernate.dialect.MySQL5Dialect

    Ha a useSSL-t true-ra állítom akkor pedig ezzel a hibával száll el:

    com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure

    The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.

    Őszintén szólva, nem igazán értem mi lehet a probléma.
    Az első hibára az interneten javasolt megoldás nekem nem működött, ugyan úgy dobja a hibát.
    (Javasolt megoldás : )

    ALTER USER 'student'@'localhost' IDENTIFIED WITH mysql_native_password BY 'pass123';

    Az adatbázis localhost-on megy, dockerbe, a default 3306-os portot más adatbázis miatt át mappeltem 3307-re. MySQL Workbench-el elérem az adatbázist, csak programból nem.

    Tipp ? :W

    Úgy látom, a mysql5-ben a mysql_native_password a default authentication plugin, a 8-ban pedig a caching_sha2_password. Feltételezem 8-ast használsz.

    elsőre amit megpróbálnék, a hibernate dialect-et mysql8-ra állítani.

    ha nem jön be, ezt próbáld meg esetleg:

    https://stackoverflow.com/a/49228443

    de ne vedd készpénznek így negyed4kor. :DDD

  • smallmer
    őstag

    A programod max akkor nem megy tovább ha a szerver nem állítja le a küldést.

    Ha a szervered tényleg csak annyit küld mint amennyit belinkeltél (for ciklus), akkor a ciklus kilépése után null-t kéne kliens oldalról olvasnod és ki kéne lépni.

    Nincs még valami a háttérbe ?
    Mit ír ki a kliens a kimenetre amikor vége a szerver oldalon a for ciklusnak ? ( null-t ? üres karaktersort ? )

    Server oldal:

    try {
    while (true) {
    beerkezoKliens = szerver.accept();
    System.out.println("Kliens csatlakozott");
    try {
    PrintWriter kuldes = new PrintWriter(beerkezoKliens.getOutputStream(), true);
    for (int i = 0; i < szamCimek.size(); i++) {
    kuldes.println(szamCimek.get(i));
    }
    } catch (IOException ex) {
    System.out.println("Nem kuldott semmit");
    }
    }
    } catch (IOException ex) {
    System.out.println("nem tudott csatlakozni kliens");
    }

    Kliens oldal:
    do{

    valasz = beolvas.readLine();
    szamCimekClient.add(valasz);

    System.out.println(valasz);
    System.out.println(szamCimekClient.size());
    } while (valasz != null);

    System.out.println("1");

    A kliens már az utolsó kiírást nem csinálja meg.

  • smallmer
    őstag

    Szia.
    Küldj kódrészletet a kommunikációról.
    (A server milyen formába küldi el a listát illetve a kliens mivel fogadja.)

    Server küldés:
    try {
    PrintWriter kuldes = new PrintWriter(beerkezoKliens.getOutputStream(), true);
    for (int i = 0; i < szamCimek.size(); i++) {
    kuldes.println(szamCimek.get(i));
    }
    } catch (IOException ex) {
    System.out.println("Nem kuldott semmit");
    }

    Kliens:

    BufferedReader beolvas = new BufferedReader(new InputStreamReader(s.getInputStream()));

    String valasz = beolvas.readLine();

    while (valasz != null) {
    System.out.println(valasz);
    }

    }

    mi lehet a gond?

  • Drizzt
    nagyúr

    Sziasztok! Segítséget szeretnék kérni Spring Security témakörben.

    Röviden: Rest service (SpringBoot projekt), H2 adatbázisban tárol adatokat.
    Az adatbázis elérés illetve a Controller mapping eddig jól működött, mindent elértem, mindent úgy tárolt ahogy szerettem volna.

    A hiba a security "berakása" után keletkezett.

    Feldobtam pastebin-re a szerintem releváns kódrészletet. Ha kihagytam volna valamit akkor szóljatok és pótlom.

    Értelmezésem szerint ennek úgy kéne működnie hogy a "szabad elérésű" mapping-eket eléri bárki (megtörténik), a /blogposts -t csak USER role-al rendelkező blogger éri el, a /blogposts/** -t pedig csak ADMIN role-al rendelkező.
    Amikor el akarom érni a /blogposts-ot akkor ki is dobja automatikusan a bejelentkező oldalt, bejelentkezek, tovább enged (nem írja ki hogy nem jó felhasználó/jelszó, amit rossz adat megadásakkor kiír), de kapásból egy HTTP Status 403 – Forbidden oldalra irányít
    egyéb adat az oldalról:
    (Type Status Report
    Description The server understood the request but refuses to authorize it.)

    Nem tudom hogy miért nem authentikálja be, vagy hogy mi is történik igazából...
    Lekérdezéskor kiírattam az adatbázisból érkező adatokat, és minden flottul megjön...

    Megj.: pastebin-re felrakott kódból kiszedtem azt a részt, de ha a UserDetailsImp-ben a getPassword metódust a pastebin-es kód állapotába hagyom akkor a hibaüzenet a PasswordEncoder null értékére háklis... olvastam hogy ha a password-ba szerepel a {noop} akkor az egy jelzés hogy ne próbálja meg dekódolni a jelszót, így a UserDetailsImp-be erre írtam át:
    @Override
    public String getPassword() {
    return "{noop}"+user.getPassword();
    }

    Mivel a felh/jelszó párost így is elfogadja és jelen pillanatba kissebb bajom is nagyobb a nem enkódolt jelszónál így ezt most még ígyhagytam.

    A netet már szétböngésztem, a javaslatok alapján változtattam is a kódot de nem jártam sikerrel így most az elejétől próbálom meg megint.. :O

    Mit rontottam el ? :F

    [Kód]

    Előre is köszi a segítséget.

    Én nem értek a Springhez, de először azt nézném meg, hogyha leszeded a ".antMatchers("/blogposts/**").hasRole("ADMIN")" sort, akkor beenged-e. A blogposts-ot amikor eléred, s ki akarod írni, hogy "jogok:", akkor abból megjelenik bármi? Ha nem, akkor valahol a configure-ban kellene lennie a gebasznak. Még amit javaslok: minél fine-abb logging bekapcsolása a configban:
    @EnableWebSecurity(debug = true)

    Hátha valamivel többet mond.

  • floatr
    veterán

    Nektek egyébként mi a véleményetek erről ?
    Az oracle elég lassan adta ki a fejlesztéseket amíg nála volt. Most ez fel fog gyorsulni ?
    Volt már ilyenre példa, hogy egy platform fejlesztéséért felelős cég átadja valakinek a fejlesztést, és ha volt akkor az hogy sült el ?
    Röviden, jobb lesz most hogy nem az Oracle vezeti a fejlesztést, vagy sem ? :F

    Ha az apache-nak adta volna, azt mondanám, hogy kuka. Szerencsére nem így történt, és már izomból nekiestek a microprofile-nak.

Új hozzászólás Aktív témák

Hirdetés